我目前在我的一个项目中使用一些 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
之前获取所选选项卡吗?
最佳答案
似乎没有内置的方法可以做到这一点。我发现的最接近的是我在 wxPython mailing list 上提供的帮助。 ,但这与双击有关。
这是我想到的一个解决方法。当您第一次显示框架时,将某种类属性设置为当前显示的选项卡(即 self.currentTab = 0)。然后捕获 EVT_AUINOTEBOOK_PAGE_CHANGING 或 EVT_AUINOTEBOOK_PAGE_CHANGED 事件并更新属性。对我来说,当我捕获 EVT_AUINOTEBOOK_PAGE_CHANGING 时,我总是会获取我正在单击的选项卡的索引,至少在 Windows 上是这样。
关于python - AuiNotebook - 获得点击选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12160918/