python - AuiNotebook - 获得点击选项卡

标签 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 之前获取所选选项卡吗?

最佳答案

似乎没有内置的方法可以做到这一点。我发现的最接近的是我在 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/

相关文章:

c# - 创建事件处理程序 +=

python - wxpython ProgressDialog 段错误(lin,不是 win)

python - 使用 python 与 Cygwin(mintty) 通信(在其中执行命令)并获取输出

javascript - 在滚动时在 javascript (window.open) 中打开一个窗口而不会被弹出窗口阻止程序阻止

python - 如何将列表和其他值作为命令行参数传递?

java - 单击按钮时如何生成事件

python - 当 wxPython 面板中加载新图像时,Matplotlib 矩形选择器消失

python - 使用 wxpython 为单选框中的特定项目着色

python - 谷歌表格 API : get the name of the tab that was last edited

python - scrapy如何在动态start_urls中重复工作