wxPython - Подсказки для вкладок в блокноте

Я создаю графический интерфейс с помощью wxPython, который использует виджет wx.Notebook. Поскольку я удалил надписи на вкладках "Блокнот" для целей дизайна, я хотел бы добавить всплывающие подсказки для каждой вкладки в отдельности, которые показывают назначение вкладки.

Я думал, что мог бы использовать AddPage() метод класса Notebook. Но он возвращает только значения bool, так что я не могу использовать SetToolTip() метод для любой вкладки. Как бы я поступил так?

1 ответ

Решение

Это не то, что встроено в wx.Notebook виджет. Вы могли бы сделать это самостоятельно, связавшись с wx.EVT_MOTION и проверка положения вашей мыши, чтобы определить, когда установить подсказку.

AUINotebook может быть лучшим выбором, так как он имеет TabHitTest метод. Кто-то из группы wxPython упомянул способ добавления всплывающих подсказок здесь: http://wxpython-users.1045709.n5.nabble.com/setting-a-tooltip-on-auinotebook-tab-td5548750.html

Вот код, который они в конечном итоге использовали в обработчике мыши над событием:

def OnMouseOver(self, evt):
    """ mouse over on a tab """

    desc = None
    n    = self.GetSelection()
    if n != -1:
        page_info = self._tabs.GetPage(n)
        ctrl, ctrl_idx = self.FindTab(page_info.window)
        if ctrl:
            ctrl.SetToolTipString(desc)
Другие вопросы по тегам