2012-08-28 24 views
1

我目前使用的一些wxPython中的AuiNotebook在我的项目之一,我有一个不能设法解决问题。我认为应该有一个简单的解决方案,但无法找到它。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

似乎有不被做这一个内建的方法。我发现的最接近的是我在wxPython mailing list上提供的帮助,但这与双击有关。

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

+0

好的。解决方法似乎工作得很好,谢谢!我仍然有点失望,虽然没有任何固定的方式,但它会更方便:p – Morwenn

+0

是的,没有开玩笑。我会向wxPython用户组发出请求。安德烈(作者)可以添加它,如果你问得好。 –

相关问题