我目前在我的一个项目中使用了一些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
之前,有人知道如何获得所选标签吗?
答案 0 :(得分:1)
似乎没有内置的方法来做到这一点。我找到的最接近的是我在wxPython mailing list上帮助过的东西,但这与双击有关。
这是我遇到的一种解决方法。首次显示框架时,将某种类属性设置为当前显示的选项卡(即self.currentTab = 0)。然后捕获EVT_AUINOTEBOOK_PAGE_CHANGING或EVT_AUINOTEBOOK_PAGE_CHANGED事件并更新属性。对我来说,当我抓住EVT_AUINOTEBOOK_PAGE_CHANGING时,我总是得到我点击的标签的索引,至少在Windows上。