为什么一个wx.dialog的父窗口加载一个wx.Panel子窗口时,子窗口不能填满父窗口?

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:29:32
问题:
我有一个wx.Panel的子类,
class RemotePanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self,parent,-1)
是作为主程序的弹出窗口来用于设置的。因此要把它作为子窗口添加给一个wx.Dialog
dlg = wx.Dialog(None, -1, title='Remote Setting Dialog',size =(500,500))
remote = RemotePanel(dlg)
dlg.ShowModal()
dlg.Destroy()
RemotePanel 我要放置几个控件,采用了sizer布局。
运行后remotePanel不能自动填满dialog窗口。如果用鼠标拖动改变窗口大小之后,就能填满。
下面图片是运行后的截图

这个问题折磨我好几天了,一直找不到好的解决办法。希望有好心人给看看哪里有问题?

下面是我写的sizer:
def Dolayout(self):
# create the mainsizer
self.mainsizer = wx.BoxSizer(wx.VERTICAL)

sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
# sizer_1 has two subsizer
sizer_1_lb = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'ListBox'), orient=wx.VERTICAL)
sizer_1_bt = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Edit Botton'),orient = wx.VERTICAL)
# the middl

我是楼上的,又研究了一下,附着到默认的dialog动手再加个sizer后恢复正常。譬如我是这样加码:
.
.
.
remote = RemotePanel(dlg)
sizer = wx.BoxSizer()
sizer.Add(panel, 1, wx.EXPAND)
dlg.SetSizer(sizer)
dlg.ShowModal()
.
.
.

还不错可以看到。我这里试了几个脚本把panel更改摆到dialog里每一个能看的,原来是附在frame里全都很正常。你说dialog拉一下就正常?我这里默认的根本没得拉,大小固化。