boxsizer.py

来自「wxPython的基本示例程序」· Python 代码 · 共 79 行

PY
79
字号
import wxfrom blockwindow import BlockWindowlabels = "one two three four".split()class TestFrame(wx.Frame):    title = "none"    def __init__(self):        wx.Frame.__init__(self, None, -1, self.title)        sizer = self.CreateSizerAndWindows()        self.SetSizer(sizer)        self.Fit()        class VBoxSizerFrame(TestFrame):    title = "Vertical BoxSizer"        def CreateSizerAndWindows(self):        sizer = wx.BoxSizer(wx.VERTICAL)        for label in labels:            bw = BlockWindow(self, label=label, size=(200,30))            sizer.Add(bw, flag=wx.EXPAND)        return sizer    class HBoxSizerFrame(TestFrame):    title = "Horizontal BoxSizer"    def CreateSizerAndWindows(self):        sizer = wx.BoxSizer(wx.HORIZONTAL)        for label in labels:            bw = BlockWindow(self, label=label, size=(75,30))            sizer.Add(bw, flag=wx.EXPAND)        return sizerclass VBoxSizerStretchableFrame(TestFrame):    title = "Stretchable BoxSizer"    def CreateSizerAndWindows(self):        sizer = wx.BoxSizer(wx.VERTICAL)        for label in labels:            bw = BlockWindow(self, label=label, size=(200,30))            sizer.Add(bw, flag=wx.EXPAND)        # Add an item that takes all the free space        bw = BlockWindow(self, label="gets all free space", size=(200,30))        sizer.Add(bw, 1, flag=wx.EXPAND)        return sizerclass VBoxSizerMultiProportionalFrame(TestFrame):    title = "Proportional BoxSizer"        def CreateSizerAndWindows(self):        sizer = wx.BoxSizer(wx.VERTICAL)        for label in labels:            bw = BlockWindow(self, label=label, size=(200,30))            sizer.Add(bw, flag=wx.EXPAND)        # Add an item that takes one share of the free space        bw = BlockWindow(self,                 label="gets 1/3 of the free space",                 size=(200,30))        sizer.Add(bw, 1, flag=wx.EXPAND)        # Add an item that takes 2 shares of the free space        bw = BlockWindow(self,                 label="gets 2/3 of the free space",                 size=(200,30))        sizer.Add(bw, 2, flag=wx.EXPAND)        return sizerapp = wx.PySimpleApp()frameList = [VBoxSizerFrame, HBoxSizerFrame,              VBoxSizerStretchableFrame,              VBoxSizerMultiProportionalFrame]for klass in frameList:    frame = klass()    frame.Show()app.MainLoop()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?