所以,基本上,我想要一些能做到这一点的事情:
def onKeyPress(widget, event):
if event.state & gtk.gdk.CONTROL_MASK and keyname == "a":
Stop the loop somehow.
def doLoop(widget):
while True:
print "You're in"
print "a loop"
mywindow = gtk.Window()
mywindow.connect("key_press_event", onKeyPress)
foo = gtk.Foo()
foo.connect("bar", doLoop)
mywindow.add(foo)
我不知道如何实现这一点,但我尝试过使用线程或不同的.py文件,但我是初学者,所以我想知道是否有更简单的方法。
答案 0 :(得分:0)
尝试使用一个名为KeyPressed的布尔值,可以从doLoop和onKeyPress函数访问。然后你可以这样做:
def onKeyPress(widget, event):
if event.state & gtk.gdk.CONTROL_MASK and keyname == "a":
KeyPressed = False
def doLoop(widget):
while KeyPressed:
print "You're in"
print "a loop"
mywindow = gtk.Window()
mywindow.connect("key_press_event", onKeyPress)
foo = gtk.Foo()
foo.connect("bar", doLoop)
mywindow.add(foo)
KeyPressed必须从头开始设置为True。