Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pygtk.window在窗口的任何部分单击事件_Python_Pygtk - Fatal编程技术网

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

Python 使用pygtk.window在窗口的任何部分单击事件,python,pygtk,Python,Pygtk,我正在使用pygtk和glade制作一个简单的程序,该程序(现在)包括: 图形用户界面: 网格4x4,每个网格显示一个名称。 网格下有一个文本条目。 程序全屏运行 行为: 在无限循环中,每个名称将“可选”10秒。“可选”意味着无论用户在何处单击,都会选择运行10秒的名称,并将其放在文本条目上 我已经制作了GUI,但不知道如何处理它来检测屏幕上任何地方的点击。有什么帮助吗?要检测屏幕上任何位置的点击,您可以连接一个回调以获取帮助。请注意,这是一个gdk事件,必须使用方法将此事件添加到掩码中 以下小

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

图形用户界面: 网格4x4,每个网格显示一个名称。 网格下有一个文本条目。 程序全屏运行

行为: 在无限循环中,每个名称将“可选”10秒。“可选”意味着无论用户在何处单击,都会选择运行10秒的名称,并将其放在文本条目上


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

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

以下小程序应该很有用:

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()

通过使用被点击的小部件的“点击”信号?(注意,一些小部件也有一个“选择”信号。)在我的例子中,点击哪个小部件并不重要,只是点击了一下。这肯定是有用的,非常感谢。我是pygtk和glade的新手。我在哪里可以找到更多关于“按钮按下事件”、按钮按下标记和相关内容的信息?我有很多东西要学。举例来说,我还需要管理双击事件。PyGTK有很好的文档记录。看一看和@jeanc请看一看五月答案中的链接。关于双击,您将需要一个不同的gdk掩码:
gtk.gdk.\u 2BUTTON\u PRESS
gdk
事件类型constans的完整列表是。@jcollado使用TextView有什么诀窍吗?我的窗口中有一个,当单击在该区域时,它不起作用:(@jeanc如果您对文本视图使用相同的
add_events
connect
调用,当鼠标单击它们时,也将执行回调。