【问题标题】:Mouse event in DrawingArea with PyGtk使用 PyGtk 在 DrawingArea 中的鼠标事件
【发布时间】:2014-05-30 18:27:40
【问题描述】:

我想在单击绘图区域时获取 X 和 Y 坐标。我正在寻找一些示例,我发现了如下代码

import gtk

class Ventana(gtk.Window):

    def __init__(self):
        super(Ventana, self).__init__()

        self.set_title('Test')
        self.set_size_request(800, 600)
        self.set_position(gtk.WIN_POS_CENTER)
        self.connect('destroy', gtk.main_quit)

        self.drawing_area = gtk.DrawingArea()
        self.drawing_area.set_size_request(780, 500)
        self.drawing_area.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('white'))
        self.drawing_area.connect('button-press-event', self.on_drawing_area_button_press)

        fixed = gtk.Fixed()
        fixed.put(self.drawing_area, 10, 10)

        self.add(fixed)

        self.show_all()

    def on_drawing_area_button_press(self, widget, event):
        print event.x, ' ', event.y


def main():
    Ventana()
    gtk.main()

if __name__ == '__main__':
    main()

当我运行它时,会出现窗口和带有白色背景的 DrawingArea,但是当我单击它时,它不会打印 event.xevent.y 的值,并且没有错误消息。

谁能告诉我这样做的正确方法是什么?

感谢您的回答。

【问题讨论】:

    标签: python gtk pygtk


    【解决方案1】:

    绘图区域需要为您要连接的事件设置事件掩码。

    self.drawing_area.set_events(gtk.gdk.BUTTON_PRESS_MASK)
    

    见:http://www.pygtk.org/pygtk2tutorial/sec-EventHandling.html (在页面底部也有一个很好的例子)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多