2016-06-19 8 views
1

У меня есть пользовательский объект (небольшой круг), расположенный в какой-то момент внутри виджета Gtk.Fixed(). Там есть способ перетащить этот объект с помощью мыши. Я не могу отображать события Mouse Press/Release/Motion, чтобы сделать эту работу.Как перетаскивать объекты вокруг в виджетах Gtk.Fixed с использованием событий мыши?

Я предпочел бы решение в Python с использованием PyGobject, но и любой другой язык будет делать также хорошо, если объяснение предоставляется

Подробнее: Я пытаюсь сделать редактор шрифтов, где эти объекты, я уже упоминал выше, будет контрольные точки кривых Безье в Glyph очерчивает Вот изображение концепции дизайна: https://github.com/sugarlabs/edit-fonts-activity/blob/gh-pages/files/img/wireframe_concept_01_first_prototype.svg Мне нужно иметь возможность перемещение точек, показанные отредактировать контур буквы,

ответ

1

GtkFixed не предназначено, чтобы сделать рисование работы. Это делается для определения виджетов (например, кнопок и т. Д.) На фиксированной сетке (a la Windows).

Если вы хотите переместить элементы чертежа, посмотрите, например. GooCanvas. Каждый элемент на goocanvas может иметь связанные события, которые затем могут использоваться для перемещения. Вы можете даже использовать CanvasGroup для группировки примитивов (круг, прямоугольник и т. Д.) И перемещать их вместе (даже изменять другие свойства, такие как цвет, ширина линии). Панель инструментов фактически содержит кривые и т. Д. Легко создать «ручку», используя небольшой прямоугольник.

Here's an example простой программы goocanvas, и вы можете найти ссылки для скачивания, справочники и другие полезные материалы here.

Я не знаю, нужен ли вам этот инструмент или просто учебное упражнение. Если первый, то посмотрите на FontForge, редактор шрифтов с открытым исходным кодом и невероятно универсальный.