【问题标题】:AuiNotebook - Get clicked tabAuiNotebook - 获得点击选项卡
【发布时间】:2012-08-28 13:59:20
【问题描述】:

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

【问题讨论】:

    标签: python events wxpython wxnotebook


    【解决方案1】:

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

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

    【讨论】:

    • 好的。解决方法似乎工作得很好,谢谢!我仍然有点失望,虽然没有任何内置方式,但它会更方便:p
    • 是的,不开玩笑。我会向 wxPython-users 组提出请求。如果你问得好,Andrea(作者)可能会添加它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2018-06-15
    • 1970-01-01
    • 2018-04-15
    • 2016-11-08
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多