2

我目前在我的一个项目中使用了一些 wxPython 的 AuiNotebook,但我遇到了一个无法解决的问题。我认为应该有一个简单的解决方案,但无法找到它。

我创建了一个派生自的新类wx.lib.agw.aui.AuiNotebook,我试图在单击它的那一刻获取选项卡的索引。我写了这样的东西:

class NewNotebook(wx.lib.agw.aui.AuiNotebook):

    # __init__ function an stuff...

    def OnTabClicked(self, evt):
        index = self.GetSelection()
        print index
        wx.lib.agw.aui.AuiNotebook.OnTabClicked(self, evt)

目的是捕获单击的选项卡的索引,在某些情况下,具有特殊行为,或者仅执行常规单击。但是,我认为这AuiNotebook.OnTabClicked实际上改变了不同事物之间的选择。它将解释为什么index包含单击之前选择的选项卡的值。

不过,我没有找到选择新标签的方法。我在捕获的事件中查找了一些信息,但仍然找不到我想要的。

那么,有人知道我在打电话之前如何获得选定的标签AuiNotebook.OnTabClicked吗?

4

1 回答 1

1

似乎没有内置的方法可以做到这一点。我找到的最接近的东西是我在wxPython 邮件列表中提供的帮助,但这与双击有关。

这是我想到的一种解决方法。当您第一次显示框架时,将某种类属性设置为当前显示的选项卡(即 self.currentTab = 0)。然后捕获 EVT_AUINOTEBOOK_PAGE_CHANGING 或 EVT_AUINOTEBOOK_PAGE_CHANGED 事件并更新属性。对我来说,当我捕捉到 EVT_AUINOTEBOOK_PAGE_CHANGING 时,我总是会得到我正在单击的选项卡的索引,至少在 Windows 上是这样。

于 2012-08-28T19:12:59.353 回答