我正在尝试使用wxPython,
我有一个标签式界面(笔记本),每个标签基本上都是一个文件列表视图(是的,我正在尝试创建文件管理器)
文件列表继承自wx.ListCtrl,选项卡式界面继承自wx.Notebook
我刚刚开始..我已经拥有它所以双击一个文件夹将cd进入该文件夹,但我也想更改标签的标题。
我该怎么做?
我有一个对象代表文件列表和我想要设置的标题,
[
编辑 Notebook.SetPageText()
需要一个数字,因此我无法将标签对象直接传递给它]
我目前的做法是循环显示标签,直到其中一个与我的标签匹配:
for tab_id in range(self.GetPageCount()):
if self.GetPage(tab_id) == tab:
self.SetPageText(tab_id, title)
break
这似乎相当幼稚,是不是有更聪明的方法?
答案 0 :(得分:2)
我不知道wxPython,但我认为它包装了C ++类的所有方法。
有 wxNotebook :: GetSelection(),它返回 wxNOT_FOUND 或所选页面的索引,然后可用于调用 wxNotebook :: SetPageText ()
或者使用 wxNotebook :: GetPage()并使用此索引检查它是否等于 tab 。
答案 1 :(得分:0)
我认为做这样的事情会有所帮助:
notebook.get_tab_label(notebook.get_nth_page(your_page_number)).set_text("Your text")
如果您想始终引用当前选项卡,则必须连接“switch-page”信号,并将页面保存在变量中。
答案 2 :(得分:-1)
As .GetPage返回一个wx.Window,我认为tab.Label = title
应该有效。