반응형
import wx
import wx.grid as gridlib
import os
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title="FlexGridSizer Example")
self.SetSize(1020, 600)
self.mainPanel = wx.Panel(self)
self.vtBoxSizer = wx.BoxSizer(wx.HORIZONTAL) # 전체 레이아웃
self.fgridSizer1 = wx.FlexGridSizer(rows=2, cols=1, hgap=5, vgap=5) # 좌측 레이아웃
self.fgridSizer2 = wx.FlexGridSizer(rows=2, cols=1, hgap=5, vgap=5) # 중앙 레이아웃
self.hrboxSizer = wx.BoxSizer(wx.HORIZONTAL) # 중앙 상단세부 레이아웃
# 좌측: 1번 소스 드라이브, 2번 소스 트리
self.SrcDir = wx.GenericDirCtrl(self.mainPanel, -1,
size=(250, 450),
dir='C:/',
style=wx.DIRCTRL_SHOW_FILTERS |
wx.DIRCTRL_3D_INTERNAL |
wx.DIRCTRL_MULTIPLE)
self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelect)
self.SrcList = wx.TextCtrl(self.mainPanel, style=wx.TE_MULTILINE)
self.fgridSizer1.Add(self.SrcDir, 1, wx.EXPAND)
self.fgridSizer1.Add(self.SrcList, 1, wx.EXPAND)
# 중앙 찾기 옵션 / search / save / 리스트 뷰
self.radio1 = wx.RadioButton(self.mainPanel, -1, "파일명")
self.radio2 = wx.RadioButton(self.mainPanel, -1, "자료명")
self.radio3 = wx.RadioButton(self.mainPanel, -1, "자료세부")
self.findButton = wx.Button(self.mainPanel, -1, "search")
self.saveButton = wx.Button(self.mainPanel, -1, "save")
self.hrboxSizer.Add(self.radio1, 1, wx.EXPAND)
self.hrboxSizer.Add(self.radio2, 1, wx.EXPAND)
self.hrboxSizer.Add(self.radio3, 1, wx.EXPAND)
self.hrboxSizer.Add(self.findButton, 1, wx.EXPAND)
self.hrboxSizer.Add(self.saveButton, 1, wx.EXPAND)
self.Bind(wx.EVT_BUTTON, self.OnSearch, self.findButton)
self.dataGrid = gridlib.Grid(self.mainPanel, wx.EXPAND)
self.dataGrid.CreateGrid(50, 6)
self.fgridSizer2.Add(self.hrboxSizer, 1, wx.ALIGN_CENTRE_HORIZONTAL|wx.EXPAND)
self.fgridSizer2.Add(self.dataGrid, 1, wx.EXPAND|wx.ALL)
# 좌/중/우 결합
self.vtBoxSizer.Add(self.fgridSizer1, 0, wx.RIGHT | wx.EXPAND)
self.vtBoxSizer.Add((20,20))
self.vtBoxSizer.Add(self.fgridSizer2, 1, wx.EXPAND)
# 사이즈 변경 조절
self.fgridSizer1.AddGrowableRow(1)
self.fgridSizer1.AddGrowableCol(0)
self.fgridSizer2.AddGrowableRow(1)
self.fgridSizer2.AddGrowableCol(0)
self.mainPanel.SetSizer(self.vtBoxSizer)
def OnSelect(self, e):
items = os.listdir(self.SrcDir.GetPath())
self.SrcList.Clear()
for item in items:
self.SrcList.AppendText(item + '\n')
def OnSearch(self, e):
if self.radio1.Value == True:
print(self.dataGrid.GetNumberRows())
#for i in range(0, 10, 1):
# print(self.dataGrid.GetCellValue(i, 0))
if __name__ == "__main__":
app = wx.App()
frm = MyFrame()
frm.Show()
app.MainLoop()
반응형
'Programming > Python_Etc' 카테고리의 다른 글
wxpython GridBagSizer 예제 (0) | 2020.06.21 |
---|---|
pandas CSV파일 읽기 - 인코딩 에러 (0) | 2020.06.21 |
wxpython 간단한 트리 (0) | 2020.06.17 |
wxpython 폴더 트리 (0) | 2020.06.16 |
wxpython 간단한 메뉴 (0) | 2020.06.16 |