我正在尝试将我的sizer与我的控件连接到wx RibbonPanel,如下所示:
class Main_Frame(wx.Frame):
def __init__(me, parent=None, id=wx.ID_ANY, size=None ):
wx.Frame.__init__(me, parent, id, size = size )
me.ribbon = RB.RibbonBar(me, wx.ID_ANY)
me.messages_page = RB.RibbonPage(me.ribbon, wx.ID_ANY, "Messages" )
me.messages_panel = RB.RibbonPanel(me.messages_page, wx.ID_ANY)
me.box = wx.BoxSizer( wx.VERTICAL )
me.messages_panel.SetSizer( me.box )
l1 = wx.StaticText( me.messages_panel, -1, label="Label1" )
me.box.Add( l1 , 0, wx.EXPAND )
t1 = wx.TextCtrl( me.messages_panel, -1 )
me.box.Add( t1 , 0, wx.EXPAND )
l1 = wx.StaticText( me.messages_panel, -1, label="Label2" )
me.box.Add( l1 , 0, wx.EXPAND )
t1 = wx.TextCtrl( me.messages_panel, -1 )
me.box.Add( t1 , 0, wx.EXPAND )
# shouldn't be necessary
me.messages_panel.Layout()
但我的所有控件都在(0,0)位置。有人以前做过吗?
答案 0 :(得分:1)
是的,其他人之前已经这样做了,我刚刚测试了small patch C ++功能区样本做了这样的事情(忽略了这个补丁中wxWidgets本身的变化,我只是链接到它显示样本中的变化)。在2.9.5下,这对我没有任何问题。
我看到的与您的代码的唯一区别在于您首先将sizer与面板关联,然后创建控件,而该补丁则反过来,但它确实无关紧要。所以看起来这可能只是旧版wxWidgets中的一个错误,从那时起就被纠正了。