Portál AbcLinuxu, 15. července 2025 03:20
QCoreApplication::processEvents()
#!/usr/bin/python # -*- coding: utf-8 -*- import gtk, gobject class Killme: def __init__(self): self.button = gtk.ToggleButton() self.timeout = None self.toggled() self.button.connect('toggled', self.toggled) self.button.show() w = gtk.Window() w.add(self.button) w.connect('destroy', gtk.main_quit) w.show() gtk.main() def run_timer(self, foo = None): self.seconds -= 1 self.button.set_label(u'Chcípnu za %d sekund' %self.seconds) self.timeout = gobject.timeout_add(1000, self.run_timer, None) if self.seconds == 0: gtk.main_quit() def stop_timer(self): if self.timeout: gobject.source_remove(self.timeout) self.button.set_label(u'Zapni odpočítávání') def toggled(self, foo = None): self.seconds = 10 if self.button.get_active(): self.run_timer() else: self.stop_timer() k = Killme()Jinak vláknům, hlavní smyčce událostí, časově náročným funkcím a obnovování GUI se věnuje celá sekce PyGTK FAQ: http://faq.pygtk.org/index.py?req=index
#!/usr/bin/python from qt import * import time import threading def click(): v = threading.Thread(target = vlakno) v.start() def vlakno(): time.sleep(5) print "ok" app=QApplication([]) win=QMainWindow() win.button=QPushButton(win,"Hello") win.button.setText("Hello World") win.show() app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) app.connect(win.button, SIGNAL("clicked()"),click) app.exec_loop()a opravdu se GUI během těch 5-ti vteřin překresluje.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.