Wxpython 在wx.Python.aui中,如何在窗格之间检测/传递事件?
我不经常编码,因此会很快忘记一些事情。然而,我在python和wx.python中修修补补(工作)了几年,终于遇到了AGW.AUI,并认为升级一些内部应用程序会很有用。然而,我现在打了个嗝。如何在面板之间检测/传递事件,这些面板通过aui.AUIManager()加载、隐藏或显示 我有一个使用wxpython的小应用程序:Wxpython 在wx.Python.aui中,如何在窗格之间检测/传递事件?,wxpython,Wxpython,我不经常编码,因此会很快忘记一些事情。然而,我在python和wx.python中修修补补(工作)了几年,终于遇到了AGW.AUI,并认为升级一些内部应用程序会很有用。然而,我现在打了个嗝。如何在面板之间检测/传递事件,这些面板通过aui.AUIManager()加载、隐藏或显示 我有一个使用wxpython的小应用程序: class paneldescription(wx.Panel): ….panel layout with a list self.gri
class paneldescription(wx.Panel):
….panel layout with a list
self.grid.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected)
def OnItemSelected(self, evt)
class WorkingPanel(wx.Panel):
….panel layout of multiple wx.StaticText and wxTextCtrl
class MyFrame(wx.Frame):
b = workbook()
pnl1 = paneldescription()
pnl2 = WorkingPanel()
b.add pnl1
b.add pnl2
self.pnl1.grid.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected)
def OnItemSelection(self, evt):
get selected item from pnl1
set data in pnl2
这在wx.Frame中运行良好。现在我将其转换为AUI并添加更多面板。我该怎么办
1) 在paneldescription和中检测OnItemSelect
2) 将其传递到工作面板
使用AUI管理器
在我的第一次尝试中,我只是将上面的Bind语句复制到AUI代码中。它告诉我没有叫做pnl1的东西
然后我把它改成:
self._mgr.GetPane("LocList").grid.Bind(wx.EVT_LIST_ITEM_SELECTED,
self.OnLocSelected)
LocList由以下人员创建:
self._mgr.AddPane(self.CreateLocCtrl(), aui.AuiPaneInfo().Name("LocList").
Caption("Location List").CenterPane().CloseButton(False).MinimizeButton(False))
这是回报
AuiPaneInfo has no object grid (grid is the name of the list in the initial panel.)
当我删除该引用时,它将返回
AuiPaneInfo has no object Bind
请帮忙
多谢各位
Warren我将原始AUI样本作为应用程序的模型。经过更多的搜索,我终于找到了另一个例子,其中页面没有添加到子函数中,而是添加到frame_init代码的顶层 我意识到我没有面板描述的实例,所以我按照这些行重新安排了代码,现在我有了pn1=descriptionpanel,这样我就可以引用pn1.OnItemSelected 只是我的一个逻辑错误 较新的例子是 我想我的困惑是因为缺少活动的AUI示例。我找到的所有示例都只显示了如何添加窗格和绑定菜单操作 W