在gtk.Window内部的任何地方捕获单击
作者:互联网
考虑以下python代码:
import gtk
class MainWindow():
def __init__(self):
self.window = gtk.Window()
self.window.show()
if __name__ == "__main__":
main = MainWindow()
gtk.main()
我需要在此gtk.Window()内部的任何地方捕获点击.
我没有找到任何合适的事件(我也尝试了button-press-event,但是它不起作用),我想念什么?
谢谢!
解决方法:
您可以将gtk.EventBox打包到窗口中.通常,每当遇到捕获事件的麻烦时,请检查gtk.EventBox是否可以解决它们.
import gtk
class MainWindow():
def __init__(self):
self.window = gtk.Window()
self.box = gtk.EventBox ()
self.window.add (self.box)
self.box.add (gtk.Label ('some text'))
self.window.show_all()
import sys
self.box.connect ('button-press-event',
lambda widget, event:
sys.stdout.write ('%s // %s\n' % (widget, event)))
if __name__ == "__main__":
main = MainWindow()
gtk.main()
但是请注意,如果小部件自行处理事件,则向上传播小部件层次结构的事件将停止.例如,gtk.Button的父级不会从中接收点击事件.
标签:gtk,click,pygtk,events,python 来源: https://codeday.me/bug/20191106/1999348.html