AuiNotebook - 获取点击标签

时间:2012-08-28 13:59:20

标签: python events wxpython wxnotebook

我目前在我的一个项目中使用了一些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之前,有人知道如何获得所选标签吗?

1 个答案:

答案 0 :(得分:1)

似乎没有内置的方法来做到这一点。我找到的最接近的是我在wxPython mailing list上帮助过的东西,但这与双击有关。

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