Изменение названия вкладки в 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 должно сработать.

Другие вопросы по тегам