Изменение названия вкладки в wx.Notebook
Я экспериментирую с wxPython,
У меня есть интерфейс с вкладками (блокнот), и каждая вкладка в основном представляет собой список файлов (да, я пытаюсь сделать файловый менеджер)
Список файлов наследуется от wx.ListCtrl, а интерфейс с вкладками наследуется от wx.Notebook
Я только начинаю.. и у меня было так, что двойной щелчок по папке перейдет в эту папку, но я также хочу изменить название вкладки.
Как я могу это сделать?
У меня есть объект, который представляет список файлов и заголовок, который я хочу установить,
[
РЕДАКТИРОВАТЬ Notebook.SetPageText()
принимает число, поэтому я не могу передать объект табуляции непосредственно к нему ]
мой текущий подход заключается в циклическом переключении вкладок, пока одна из них не совпадет с моей вкладкой
for tab_id in range(self.GetPageCount()):
if self.GetPage(tab_id) == tab:
self.SetPageText(tab_id, title)
break
Это кажется довольно наивным, разве нет более разумного подхода?
3 ответа
Я не знаю wxPython, но я предполагаю, что он охватывает все методы классов C++.
Существует wxNotebook::GetSelection(), которая возвращает wxNOT_FOUND или индекс выбранной страницы, который затем можно использовать для вызова wxNotebook:: SetPageText ().
Или используйте wxNotebook::GetPage() с этим индексом, чтобы проверить, равен ли он tab.
Я думаю, что делать что-то вроде этого помогает:
notebook.get_tab_label(notebook.get_nth_page(your_page_number)).set_text("Your text")
Если вы хотите всегда иметь ссылку на текущую вкладку, вы должны подключить сигнал "switch-page" и сохранить страницу в переменной.
Как.GetPage возвращает wx.Window, я думаю tab.Label = title
должно сработать.