Python/wxPython: AUI管理器,防止面板离开窗口
我正在使用下面的代码来测试AUI的一些功能。如果你运行这段代码,你会看到一个框架里面有两个面板,这些面板可以被分离或漂浮。不过,这些面板可以在屏幕上随意拖动。我想要防止面板离开主框架。这样做可能吗?我以为会有一个标志或者什么可以更改的设置,但我到现在还没有找到。
谢谢!
代码:
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 个回答
2
在 AuiPaneInfo()
里,你可以给不想让它浮动的面板加上 Floatable(False)
这个设置:
wx.aui.AuiPaneInfo().Left().Floatable(False)