Python / wxPython:AUI管理器,防止面板离开框架

时间:2011-12-14 17:47:21

标签: python wxpython

我正在使用下面的代码来测试AUI的一些功能。如果您运行代码,您应该找到一个框架,其中包含2个可以分离/浮动的面板。但是,可以将面板拖动到屏幕上的任何位置。我想防止面板离开主框架。这可能吗?我以为会有一面旗帜或者我可以改变的东西,但我还没有找到任何东西。

谢谢!

代码:

import wx
from wx.lib.agw import aui

class TestPanel(wx.Panel):
    def __init__(self, *args, **keys):
        wx.Panel.__init__(self, *args, **keys)
        self.textCtrl = wx.StaticText( self, wx.ID_ANY, 'AGW is a very nice library!' )

class TestFrame(wx.Frame):
    def __init__(self, *args, **keys):
        wx.Frame.__init__(self, *args, **keys)
        self.mgr = mgr = aui.AuiManager_DCP()
        mgr.SetManagedWindow( self )
        mgr.AddPane( TestPanel(self), aui.AuiPaneInfo().Name('p1').Caption('p1').Right().BestSize((100,100)) )
        mgr.AddPane( TestPanel(self), aui.AuiPaneInfo().Name('p2').Caption('p2').Bottom().BestSize((100,100)) )
        mgr.Update()


if __name__ == '__main__':
    app = wx.App( redirect = False )
    frame = TestFrame( None, title = 'AUI test', size = (300, 400) )
    frame.Show()
    app.MainLoop()

1 个答案:

答案 0 :(得分:2)

AuiPaneInfo()中,您可以将Floatable(False)添加到您不希望它浮动的痛苦中:

wx.aui.AuiPaneInfo().Left().Floatable(False)