Python 更改wx.Notebook中选项卡的标题

Python 更改wx.Notebook中选项卡的标题,python,wxpython,wxwidgets,tabbed-interface,Python,Wxpython,Wxwidgets,Tabbed Interface,我在用wxPython做实验 我有一个选项卡式界面(笔记本),每个选项卡基本上都是一个文件列表视图(是的,我正在尝试制作一个文件管理器) 文件列表继承自wx.ListCtrl,选项卡式界面继承自wx.Notebook 我才刚开始。。我有它,所以双击一个文件夹将cd放入该文件夹,但我也想改变标签的标题 我该怎么做 我有一个表示文件列表的对象和要设置的标题 [编辑笔记本。SetPageText()接受一个数字,因此我无法将选项卡对象直接传递给它] 我当前的方法是循环浏览选项卡,直到其中一个与我的选项

我在用wxPython做实验

我有一个选项卡式界面(笔记本),每个选项卡基本上都是一个文件列表视图(是的,我正在尝试制作一个文件管理器)

文件列表继承自wx.ListCtrl,选项卡式界面继承自wx.Notebook

我才刚开始。。我有它,所以双击一个文件夹将cd放入该文件夹,但我也想改变标签的标题

我该怎么做

我有一个表示文件列表的对象和要设置的标题

[
编辑
笔记本。SetPageText()
接受一个数字,因此我无法将选项卡对象直接传递给它
]

我当前的方法是循环浏览选项卡,直到其中一个与我的选项卡匹配:

    for tab_id in range(self.GetPageCount()):
        if self.GetPage(tab_id) == tab:
            self.SetPageText(tab_id, title)
            break

这看起来很幼稚,不是有更聪明的方法吗?

当.GetPage返回wx.Window时,我认为
tab.Label=title
应该可以工作。

我认为这样做有助于:


notebook.get_tab_label(notebook.get_nth_page(your_page_number)).set_text("Your text")

如果你想一直引用当前的标签,你必须连接“切换页面”信号,并将页面保存在变量中。

我不知道WxPython,但我假设它封装了C++类的所有方法。 wxNotebook::GetSelection()返回wxNOT_FOUND或所选页面的索引,然后可以使用该索引调用wxNotebook::SetPageText()


或者将wxNotebook::GetPage()与此索引一起使用,检查它是否等于tab。

这比notebook好多少。SetPageText(页码,“标题”)?另外,你还需要先找到“数字”。我不想假设只有选定的页面可以更改目录。我不确定你如何在笔记本中不激活该页面的情况下双击文件列表?但是,如果您需要它来处理所有页面,只需使用问题中的代码即可,在我看来,这并不糟糕或幼稚。