使用pygtk.Window在窗口的任何部分单击事件

时间:2012-01-20 17:50:33

标签: python pygtk

我正在使用pygtk和glade制作一个简单的程序(现在)包括:

GUI: 网格4x4,每个网格显示一个名称。 在网格下进入文本输入。 该程序全屏运行。

行为: 每个名称在无限循环中都可以“选择”10秒。 “selectable”表示无论用户点击何处,都会选择运行10secs时间的名称并将其放在TextEntry上。

我已经制作了GUI,但不知道如何处理它以检测屏幕上任何位置的点击。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

要检测屏幕上任何位置的点击,您可以连接button-press-event的回调。请注意,这是gdk事件,您必须使用add_events方法将此事件添加到掩码中。

以下小程序应该是有用的:

import gtk

def callback(window, event):
    assert event.type == gtk.gdk.BUTTON_PRESS
    print 'Clicked at x={0}, y={0}'.format(event.x, event.y)

window = gtk.Window()
window.add_events(gtk.gdk.BUTTON_PRESS_MASK)
window.connect('button-press-event', callback)
window.connect('destroy', lambda w: gtk.main_quit())
window.show_all()

gtk.main()