如何使用鼠标事件在Gtk.Fixed小部件中拖动对象?

时间:2016-06-19 02:13:57

标签: python gtk3 pygobject

我在Gtk.Fixed()小部件中的某个位置放置了一个自定义对象(一个小圆圈)。有一种方法可以使用鼠标拖动此对象。我无法映射Mouse Press / Release / Motion事件以使其正常工作。

我更喜欢使用PyGobject的Python解决方案,但如果提供解释,任何其他语言也会没问题

更多详情: 我正在尝试制作一个字体编辑器,其中我上面提到的这些对象将成为Glyph轮廓中贝塞尔曲线的控制点 这是概念设计的图像: https://github.com/sugarlabs/edit-fonts-activity/blob/gh-pages/files/img/wireframe_concept_01_first_prototype.svg 我需要能够移动显示的点以编辑显示的字母的轮廓

1 个答案:

答案 0 :(得分:1)

GtkFixed不是为了绘画而设计的。它用于在固定网格(Windows上)上定位小部件(例如按钮等)。

如果您想移动绘图元素,请查看例如。 GooCanvas。 goocanvas上的每个元素都可以连接事件,然后可以使用它来移动它。您甚至可以使用CanvasGroup对基元(圆形,矩形等)进行分组,并将它们移动到一起(甚至更改其他属性,如颜色,线宽)。工具箱实际上包含曲线等。使用小矩形创建“手柄”很容易。

Here's an example一个简单的goocanvas程序,你可以找到下载链接,参考手册和其他有用的东西here

我不知道这是你需要的工具,还是只是一个学习练习。如果是前者,那么请查看FontForge,一个开源字体编辑器,并且非常通用。