当我点击DrawingArea时,我想获得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.x
和event.y
的值,并且没有错误消息。
任何人都可以告诉我这样做的正确方法是什么?
感谢您的回答。
答案 0 :(得分:1)
需要使用事件掩码为您要连接的事件设置绘图区域。
self.drawing_area.set_events(gtk.gdk.BUTTON_PRESS_MASK)
请参阅:http://www.pygtk.org/pygtk2tutorial/sec-EventHandling.html (在页面底部也有一个很好的例子)