Можно ли сделать графику, созданную в cairo/GTK+, кликабельной?

Я понимаю, что в GTK+ вы можете создавать кнопки, события и т. д., но есть ли способ сделать то, что вы создаете в cairo (скажем, вы рисуете круг), кнопкой, на которую можно нажать? Думаю, я запутался в отношениях между GTk и cairo.


person user2593562    schedule 30.11.2013    source источник


Ответы (2)


Cairo — это библиотека 2D-графики, которая предоставляет API для рисования, GTK+ использует Cairo для рисования, для щелчка по элементам, созданным с помощью Cairo, вы можете взглянуть на Canvas, такой как GooCanvas [1], он поддерживает самоанализ, поэтому вы можете использовать его из Python тоже (pygobject 3) [2]

Элементы [3], созданные с помощью GooCanvas, поддерживают события и отрисовываются с Cairo внизу, поэтому вы можете нарисовать круг [4] и использовать события по своему усмотрению.

  1. https://wiki.gnome.org/Projects/PyGObject
  2. https://wiki.gnome.org/action/show/Projects/PyGObject?action=show&redirect=PyGObject
  3. https://developer.gnome.org/goocanvas/unstable/GooCanvasItem.html
  4. 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