wxPython FlexGridSizer实现文件目录浏览

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()
        

最终效果:
wxPython FlexGridSizer实现文件目录浏览_第1张图片

你可能感兴趣的:(编程语言,GUI,wxPython)