wx - 如何并排创建两个不同大小的笔记本?

wx - how to create two notebooks side by side with different sizes?

我想用两个笔记本创建一个 window。左边的应始终尽可能窄。右边的应该尽可能宽,并在 window 调整大小时扩展。在Wx中可以吗?

这是我在 wxFormBuilder 中设法完成的。当我调整 window 大小时,两个笔记本的宽度始终相同。

我尝试更改它们每个的 sizerItem 比例,但这显然只是改变了比例。我只想让正确的扩展。更改每个笔记本的 wxEXPAND 标志仅更改垂直扩展而不更改水平扩展。

感谢您的帮助。

生成的代码:

# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MyFrame1
###########################################################################

class MyFrame1 ( wx.Frame ):

        def __init__( self, parent ):
                wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )

                self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )

                bSizer1 = wx.BoxSizer( wx.HORIZONTAL )

                self.m_notebook1 = wx.Notebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )
                self.m_panel1 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
                self.m_notebook1.AddPage( self.m_panel1, u"a page", False )
                self.m_panel2 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
                self.m_notebook1.AddPage( self.m_panel2, u"a page", False )

                bSizer1.Add( self.m_notebook1, 1, wx.EXPAND |wx.ALL, 5 )

                self.m_notebook2 = wx.Notebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )
                self.m_panel3 = wx.Panel( self.m_notebook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
                self.m_notebook2.AddPage( self.m_panel3, u"a page", False )
                self.m_panel4 = wx.Panel( self.m_notebook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
                self.m_notebook2.AddPage( self.m_panel4, u"a page", False )

                bSizer1.Add( self.m_notebook2, 1, wx.EXPAND |wx.ALL, 5 )


                self.SetSizer( bSizer1 )
                self.Layout()

                self.Centre( wx.BOTH )

        def __del__( self ):
                pass

您只需将左侧项目的比例设置为 0(这是默认值),将右侧项目的比例设置为 1,这将允许它扩展以填充所有可用的 space。就这么简单,windows 是笔记本一点都不重要——所有 windows.

的规则都是一样的