版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yongbaofeng1234/article/details/86532851
import wx
class MainPanel(wx.Panel):
def __init__(self,parent):
wx.Panel.__init__(self,parent,-1)
txt1=wx.StaticText(self,-1,"Style 0")
dir1=wx.GenericDirCtrl(self,-1,size=(200,225),style=0)
txt2=wx.StaticText(self,-1,"Dir Only")
dir2=wx.GenericDirCtrl(self,-1,size=(200,225),style=wx.DIRCTRL_DIR_ONLY)
txt3=wx.StaticText(self,-1,"Filter")
dir3=wx.GenericDirCtrl(self,-1,size=(200,225),style=wx.DIRCTRL_SHOW_FILTERS,filter="All files (*.*)|*.*|Python files (*.py)|*.py")
sz = wx.FlexGridSizer(cols=3, hgap=5, vgap=5)
sz.Add((35, 35)) # (0,0) 指定坐标添加空白元素
sz.Add((35, 35)) # (0,1) 指定坐标添加空白元素
sz.Add((35, 35)) # (0,2) 指定坐标添加空白元素
sz.Add(txt1) # (1,0) 添加文本
sz.Add(txt2)
sz.Add(txt3)
sz.Add(dir1, 0, wx.EXPAND) # (2,0) 添加GenericDirCtrl
sz.Add(dir2, 0, wx.EXPAND)
sz.Add(dir3, 0, wx.EXPAND)
sz.Add((35,35)) # (3,0)添加一个空白元素,保证下面有空行
sz.AddGrowableRow(2) # 第二行(GenericDirCtrl)可伸缩,即Panel高度变化时,第二行的控件可自动根据Panel的高度进行伸缩
sz.AddGrowableCol(0) # 第0列,水平方向上和甚多
sz.AddGrowableCol(1)
sz.AddGrowableCol(2)
self.SetSizer(sz)
self.SetAutoLayout(True)
app=wx.App()
frm=wx.Frame(None)
frm.SetSize((800,500))
panel=MainPanel(frm)
frm.Show(show=True)
app.MainLoop()
最终效果: