Wxpython 在wx.Python.aui中,如何在窗格之间检测/传递事件?

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

我不经常编码,因此会很快忘记一些事情。然而,我在python和wx.python中修修补补(工作)了几年,终于遇到了AGW.AUI,并认为升级一些内部应用程序会很有用。然而,我现在打了个嗝。如何在面板之间检测/传递事件,这些面板通过aui.AUIManager()加载、隐藏或显示

我有一个使用wxpython的小应用程序:

    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