示例#1
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "GridBagSizer Test")

        # Create the sizer
        sizer = wx.GridBagSizer(hgap=5, vgap=5)

        # Create some block windows in a basic grid
        for col in range(3):
            for row in range(3):
                bw = BlockWindow(self, label=labels[row * 3 + col])
                sizer.Add(bw, pos=(row, col))

        # add a window that spans several rows
        bw = BlockWindow(self, label="span 3 rows")
        sizer.Add(bw, pos=(0, 3), span=(3, 1), flag=wx.EXPAND)

        # add a window that spans all columns
        bw = BlockWindow(self, label="span all columns")
        sizer.Add(bw, pos=(3, 0), span=(1, 4), flag=wx.EXPAND)

        # make the last row and col be stretchable
        sizer.AddGrowableCol(3)
        sizer.AddGrowableRow(3)

        # Tell this window to use the sizer for layout
        self.SetSizer(sizer)

        # Change the size of the window to be the minimum
        # needed by the sizer
        self.Fit()
示例#2
0
    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 sizer
示例#3
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "GridBagSizer Test")
        self.panel = wx.Panel(self)

        sizer = wx.GridBagSizer(hgap=5, vgap=5)
        for col in range(3):
            for row in range(3):
                bw = BlockWindow(self, label=labels[row * 3 + col])
                sizer.Add(bw, pos=(row, col))

        # add a window that spans several rows
        bw = BlockWindow(self, label="span 3 rows")
        sizer.Add(bw, pos=(0, 3), span=(3, 1), flag=wx.EXPAND)

        self._btn1 = wx.Button(self, wx.ID_ANY, "Click me")
        self._btn2 = wx.Button(self, wx.ID_ANY, "Click you")

        sizer.Add(self._btn1, pos=(0, 4))
        sizer.Add(self._btn2, pos=(1, 4))
        self.self_test_txt = wx.StaticText(self, -1, "my Right Panel")
        sizer.Add(self.self_test_txt, pos=(2, 4))

        # self.button = wx.Button(self, -1, "Hello", pos=(50, 20))
        # self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
        # self.button.SetDefault()

        # add a window that spans all columns
        bw = BlockWindow(self, label="span all columns")
        sizer.Add(bw, pos=(3, 0), span=(1, 4), flag=wx.EXPAND)

        # make the last row and col be stretchable
        sizer.AddGrowableCol(3)
        sizer.AddGrowableRow(3)

        #         # make three static boxes with windows positioned inside them
        #         box1 = self.MakeStaticBoxSizer("Box 1", labels[0:3])
        #         box2 = self.MakeStaticBoxSizer("Box 2", labels[3:6])
        #         box3 = self.MakeStaticBoxSizer("Box 3", labels[6:9])
        #
        #         # We can also use a sizer to manage the placement of other
        #         # sizers (and therefore the windows and sub-sizers that they
        #         # manage as well.)
        #         sizer = wx.BoxSizer(wx.HORIZONTAL)
        #         sizer.Add(box1, 0, wx.ALL, 10)
        #         sizer.Add(box2, 0, wx.ALL, 10)
        #         sizer.Add(box3, 0, wx.ALL, 10)
        #
        #         self.panel.SetSizer(sizer)
        #         sizer.Fit(self)

        self.SetSizer(sizer)
        self.Fit()
示例#4
0
    def __init__(self, makeLarger=False, useExpand=False):
        wx.Frame.__init__(self, None, -1, "FlexGridSizer Test")

        if useExpand:
            flag = wx.EXPAND
        else:
            flag = 0

        # Create the sizer
        sizer = wx.FlexGridSizer(rows=3, cols=3, hgap=5, vgap=5)

        # Create some block windows
        for label in labels:
            bw = BlockWindow(self, label=label)
            sizer.Add(bw, 0, flag)

        if makeLarger:
            center = self.FindWindowByName("five")
            center.SetMinSize((150,50))
            sizer.AddGrowableCol(1)
            sizer.AddGrowableRow(1)

        # Tell this window to use the sizer for layout
        self.SetSizer(sizer)

        # Change the size of the window to be the minimum
        # needed by the sizer
        self.Fit()
示例#5
0
 def __init__(self):
     wx.Frame.__init__(self, None, -1, "Prepend Grid Sizer")
     sizer = wx.GridSizer(rows=3, cols=3, hgap=5, vgap=5)
     for label in labels:
         bw = BlockWindow(self, label=label)
         sizer.Prepend(bw, 0, 0)
     self.SetSizer(sizer)
     self.Fit()
示例#6
0
 def __init__(self):
     wx.Frame.__init__(self, None, -1, "GridBagSizer Test")
     sizer = wx.GridBagSizer(hgap=5, vgap=5)
     for col in range(3):
         for row in range(3):
             bw = BlockWindow(self, label=labels[row * 3 + col])
             sizer.Add(bw, pos=(row, col))
     # 跨行
     bw = BlockWindow(self, label="span 3 rows")
     sizer.Add(bw, pos=(0, 3), span=(3, 1), flag=wx.EXPAND)
     # 跨列
     bw = BlockWindow(self, label="span all columns")
     sizer.Add(bw, pos=(3, 0), span=(1, 4), flag=wx.EXPAND)
     # 使最后的行和列可增长
     sizer.AddGrowableCol(3)
     sizer.AddGrowableRow(3)
     self.SetSizer(sizer)
     self.Fit()
示例#7
0
 def __init__(self):
     wx.Frame.__init__(self, None, -1, "GridSizer Resizing")
     sizer = wx.GridSizer(rows=3, cols=3, hgap=5, vgap=5)
     for label in labels:
         bw = BlockWindow(self, label=label)
         flag = flags.get(label, 0)
         sizer.Add(bw, 0, flag)
     self.SetSizer(sizer)
     self.Fit()
示例#8
0
 def __init__(self):
     wx.Frame.__init__(self, None, -1, "GridSizer Test")
     sizer = wx.GridSizer(rows=3, cols=3, hgap=5, vgap=5)
     for label in labels:
         bw = BlockWindow(self, label=label)
         sizer.Add(bw, 0, 0)
     center = self.FindWindowByName("five")
     center.SetMinSize((150, 50))
     self.SetSizer(sizer)
     self.Fit()
示例#9
0
    def CreateSizerAndWindows(self):
        # Create the sizer
        sizer = wx.BoxSizer(wx.HORIZONTAL)

        # Create some block windows
        for label in labels:
            bw = BlockWindow(self, label=label, size=(75, 30))
            sizer.Add(bw, flag=wx.EXPAND)

        return sizer
示例#10
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'basic grid sizer')
        sizer = wx.GridSizer(rows=3, cols=3, hgap=5, vgap=5)
        for label in labels:
            bw = BlockWindow(self, label=label)
            sizer.Add(bw, 0, 0)

        # 将sizer附加到窗口
        self.SetSizer(sizer)
        # 调整窗口的尺寸以适应子窗口的尺寸
        self.Fit()
示例#11
0
    def MakeStaticBoxSizer(self, boxlabel, itemlabels):
        # first the static box
        box = wx.StaticBox(self.panel, -1, boxlabel)

        # then the sizer
        sizer = wx.StaticBoxSizer(box, wx.VERTICAL)

        # then add items to it like normal
        for label in itemlabels:
            bw = BlockWindow(self.panel, label=label)
            sizer.Add(bw, 0, wx.ALL, 2)

        return sizer
示例#12
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "GridBagSizer Test")
        sizer = wx.GridBagSizer(hgap=5, vgap=5)
        for col in range(3):
            for row in range(3):
                bw = BlockWindow(self, label=labels[row * 3 + col])
                sizer.Add(bw, pos=(row, col))

        # add a window that spans several rows
        bw = BlockWindow(self, label="span 3 rows")
        sizer.Add(bw, pos=(0, 3), span=(3, 1), flag=wx.EXPAND)

        # add a window that spans all columns
        bw = BlockWindow(self, label="span all columns")
        sizer.Add(bw, pos=(3, 0), span=(1, 4), flag=wx.EXPAND)

        # make the last row and col be stretchable
        sizer.AddGrowableCol(3)
        sizer.AddGrowableRow(3)

        self.SetSizer(sizer)
        self.Fit()
示例#13
0
    def CreateSizerAndWindows(self):
        # Create the sizer
        sizer = wx.BoxSizer(wx.VERTICAL)

        # Create some block windows
        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 sizer
示例#14
0
 def __init__(self):
     wx.Frame.__init__(self, None, -1, "Resizing Flex Grid Sizer")
     sizer = wx.FlexGridSizer(rows=3, cols=3, hgap=5, vgap=5)
     for label in labels:
         bw = BlockWindow(self, label=label)
         sizer.Add(bw, 0, 0)
     center = self.FindWindowByName("five")
     center.SetMinSize((150, 50))
     sizer.AddGrowableCol(0, 1)
     sizer.AddGrowableCol(1, 2)
     sizer.AddGrowableCol(2, 1)
     sizer.AddGrowableRow(0, 1)
     sizer.AddGrowableRow(1, 5)
     sizer.AddGrowableRow(2, 1)
     self.SetSizer(sizer)
     self.Fit()
示例#15
0
    def MakeStaticBoxSizer(self, boxlabel, itemlabels):
        # first the static box
        box = wx.StaticBox(self.panel, -1, boxlabel)

        # then the sizer
        sizer = wx.StaticBoxSizer(box, wx.VERTICAL)

        # then add items to it like normal
        for label in itemlabels:
            bw = BlockWindow(self.panel, label=label)
            sizer.Add(bw, 0, wx.ALL, 2)
            self._btn1 = wx.Button(self.panel, wx.ID_ANY, "Click me")
            self._btn2 = wx.Button(self.panel, wx.ID_ANY, "Click you")

            sizer.Add(self._btn1)
            sizer.Add(self._btn2)

        return sizer
示例#16
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'basic grid sizer')
        sizer = wx.FlexGridSizer(rows=3, cols=3, hgap=5, vgap=5)
        for label in labels:
            bw = BlockWindow(self, label=label)
            sizer.Add(bw, 0, 0)

        # 由name属性获取子窗口
        center = self.FindWindowByName('five')
        center.SetMinSize((150, 50))
        # 列扩展
        sizer.AddGrowableCol(0, 1)
        sizer.AddGrowableCol(1, 2)
        sizer.AddGrowableCol(2, 1)
        # 行扩展
        sizer.AddGrowableRow(0, 0)
        sizer.AddGrowableRow(1, 5)
        sizer.AddGrowableRow(2, 1)
        # 将sizer附加到窗口
        self.SetSizer(sizer)
        # 调整窗口的尺寸以适应子窗口的尺寸
        self.Fit()
示例#17
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "StaticBoxSizer Test")
        self.panel = wx.Panel(self)

        # # make three static boxes with windows positioned inside them
        # box1 = self.MakeStaticBoxSizer("Box 1", labels[0:3])
        # box2 = self.MakeStaticBoxSizer("Box 2", labels[3:6])
        # box3 = self.MakeStaticBoxSizer("Box 3", labels[6:9])
        #
        # # We can also use a sizer to manage the placement of other
        # # sizers (and therefore the windows and sub-sizers that they
        # # manage as well.)
        # sizer = wx.BoxSizer(wx.HORIZONTAL)
        # sizer.Add(box1, 0, wx.ALL, 10)
        # sizer.Add(box2, 0, wx.ALL, 10)
        # sizer.Add(box3, 0, wx.ALL, 10)
        #
        # box = wx.StaticBox(self.panel, -1, boxlabel)
        # sizer = wx.StaticBoxSizer(box, wx.VERTICAL)
        # bw = BlockWindow(self.panel, label=label)

        # sizer.Add(bw, 0, wx.ALL, 2)
        # self._btn1 = wx.Button(self.panel, wx.ID_ANY, "Click me")
        # self._btn2 = wx.Button(self.panel, wx.ID_ANY, "Click you")

        box1 = wx.StaticBox(self.panel, -1, "Box 1",  size=(300,200))
        # box1_sizer = wx.StaticBoxSizer(box1, wx.HORIZONTAL)
        box1_sizer = wx.GridSizer(box1, wx.HORIZONTAL)

        # Add(self, item, int proportion=0, int flag=0, int border=0,
        #     PyObject userData=None)
        bw1 = BlockWindow(self.panel, label="Block Window 1")
        box1_sizer.Add(bw1, 0, wx.ALL, border=2, pos=(0,0))

        # Add(self, item, int proportion=0, int flag=0, int border=0,
        #     PyObject userData=None
        rtb = wx.ToggleButton(self.panel, label='red')
        box1_sizer.Add(rtb, 0, wx.ALL, border=2, pos=(0,1))


        box2 = wx.StaticBox(self.panel, -1, "Box 2", size=(300,200))
        box2_sizer = wx.StaticBoxSizer(box2, wx.HORIZONTAL)

        bw2 = BlockWindow(self.panel, label="Block Window 2")
        box2_sizer.Add(bw2, 0, wx.ALL, 2)

        # gb_sizer = wx.GridBagSizer(hgap=5, vgap=5)
        #
        # _btn1 = wx.Button(self, wx.ID_ANY, "Click me")
        # # self._btn2 = wx.Button(self, wx.ID_ANY, "Click you")
        # #
        # gb_sizer.Add(_btn1, pos=(0, 4))

        # bw1 = BlockWindow(self, label="span 3 rows")
        # gb_sizer.Add(bw1, pos=(0, 3), span=(3, 1), flag=wx.EXPAND)
        #
        # self._btn1 = wx.Button(self, wx.ID_ANY, "Click me")
        # self._btn2 = wx.Button(self, wx.ID_ANY, "Click you")
        #
        # gb_sizer.Add(self._btn1, pos=(0, 4))
        # gb_sizer.Add(self._btn2, pos=(1, 4))
        # self.self_test_txt = wx.StaticText(self, -1, "my Right Panel")
        # sizer.Add(self.self_test_txt, pos=(2, 4))


        gb_sizer = wx.GridBagSizer(hgap=5, vgap=5)
        gb_sizer.Add(box1_sizer, pos=(0, 1), span=(3, 1), flag=wx.EXPAND)
        gb_sizer.Add(box2_sizer, pos=(0, 2), span=(3, 1), flag=wx.EXPAND)
        # gb_sizer.Add(gb_sizer, pos=(0, 3), span=(3, 1), flag=wx.EXPAND)

        self.panel.SetSizer(gb_sizer)
        gb_sizer.Fit(self)
示例#18
0
 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