2016-10-06 2 views
0

Так что я программирую программу python, которая использует wxPython для UI, с виджем wx.TreeCtrl для выбора изображений (.png) в выбранном каталоге. Я хотел бы добавить hover на элемент treectrl, который работает как подсказка, но вместо текста он показывает растровое изображение.wxpython treectrl show bitmap picture on hover

Есть ли что-то, что уже позволяет это, или мне нужно создать что-то с wxWidgets?

Я не слишком знаком с wxWidgets, поэтому, если мне нужно создать что-то подобное, как бы тяжело это было, много кода уже использует treectrl, поэтому он должен работать одинаково.

Так как же мне нужно будет это делать? И если может быть что-то, чего я могу потерять, я буду рад узнать.

ответ

1

Посмотрите на модуль wx.lib.agw.supertooltip. Он должен помочь вам создать всплывающее окно, которое отображает пользовательский богатый контент.

Что касается запуска всплывающей подсказки, вы можете поймать события мыши для виджета дерева (обязательно вызовите Skip, чтобы виджет с деревом тоже мог видеть события) и каждый раз, когда мышь перемещается, сбрасывается таймер. Если таймер истекает, потому что мышь не была перемещена так долго, вы можете использовать tree.HitTest, чтобы найти элемент, в котором находится курсор, а затем отобразить соответствующее изображение для этого элемента.