Я понимаю, что в GTK+ вы можете создавать кнопки, события и т. д., но есть ли способ сделать то, что вы создаете в cairo (скажем, вы рисуете круг), кнопкой, на которую можно нажать? Думаю, я запутался в отношениях между GTk и cairo.
Можно ли сделать графику, созданную в cairo/GTK+, кликабельной?
Ответы (2)
Cairo — это библиотека 2D-графики, которая предоставляет API для рисования, GTK+ использует Cairo для рисования, для щелчка по элементам, созданным с помощью Cairo, вы можете взглянуть на Canvas, такой как GooCanvas [1], он поддерживает самоанализ, поэтому вы можете использовать его из Python тоже (pygobject 3) [2]
Элементы [3], созданные с помощью GooCanvas, поддерживают события и отрисовываются с Cairo внизу, поэтому вы можете нарисовать круг [4] и использовать события по своему усмотрению.
- https://wiki.gnome.org/Projects/PyGObject
- https://wiki.gnome.org/action/show/Projects/PyGObject?action=show&redirect=PyGObject
- https://developer.gnome.org/goocanvas/unstable/GooCanvasItem.html
- https://developer.gnome.org/goocanvas/unstable/GooCanvasEllipse.html
person
gianmt
schedule
01.12.2013
Как сказал гигант, вам нужен холст. Для GTK 2 может помочь GooCanvas. Для GTK 3 (и, возможно, даже GTK 2) может быть предпочтительнее Clutter.
person
liberforce
schedule
02.12.2013