2
當我使用wx.aui建立我的用戶界面,它調整大小的面板。我正在定義一個從wx.Panel繼承的類,並且我們需要在其窗口窗格調整大小時更改該面板的內容。如何判斷使用wx.aui
我使用的代碼非常類似於下面的代碼(其是示例代碼的修改版本中發現here)。
我的問題是:有沒有一種方法wx.Panel被稱爲由AuiManager幕後,我可以超載?如果不是,我的ControlPanel對象如何知道它正在調整大小?
例如,如果我運行此代碼,並在上下窗格之間向上拖動水平分隔在右邊,是如何右上面板的告訴它的大小隻是改變了嗎?
import wx
import wx.aui
class ControlPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.mgr = wx.aui.AuiManager(self)
leftpanel = ControlPanel(self, -1, size = (200, 150))
rightpanel = ControlPanel(self, -1, size = (200, 150))
bottompanel = ControlPanel(self, -1, size = (200, 150))
self.mgr.AddPane(leftpanel, wx.aui.AuiPaneInfo().Bottom())
self.mgr.AddPane(rightpanel, wx.aui.AuiPaneInfo().Left().Layer(1))
self.mgr.AddPane(bottompanel, wx.aui.AuiPaneInfo().Center().Layer(2))
self.mgr.Update()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, '07_wxaui.py')
frame.Show()
self.SetTopWindow(frame)
return 1
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
是啊。我沒有想過自己將事件綁定......謝謝! – Mathieu 2009-06-15 00:22:59