Seite 1 von 1
Endlosschleife von GTK+ mitbenutzen?
Verfasst: Samstag 27. Juni 2009, 13:47
von theliquidwave
Hi.
Ich habe gestern mit GTK+ angefangen und es gefällt mir doch recht gut

Nun brauche ich allerdings eine Möglichkeit, die Endlosschleife von GTK+ mitzubenutzen. Dafür müsste es doch eine Funktion geben, oder? Zumindest habe ich in der Referenz nichts dazu gefunden, eventuell weil ich auch nicht weiß, wie sowas richtig heißt.
Vielen Dank!
~ Chris
Verfasst: Samstag 27. Juni 2009, 18:39
von Dauerbaustelle
Stichwort Threads.
Beispiel:
Code: Alles auswählen
import gtk
import thread
import time
def mythread():
while True:
time.sleep(0.5)
btn.set_label(str(int(btn.get_label())+1))
# Label des Buttons um eins hochzaehlen
win = gtk.Window()
btn = gtk.Button('1')
win.add(btn)
win.set_size_request(200, 200)
win.set_position(gtk.WIN_POS_CENTER)
win.show_all()
gtk.gdk.threads_init()
# alle Threads die zwischen init und leave gestartet werden fliessen
# in die gtk-Hauptschleife ein
thread.start_new_thread(mythread, tuple())
gtk.gdk.threads_leave()
gtk.main()
Verfasst: Samstag 27. Juni 2009, 19:43
von Leonidas
Aua. Wenn du die Schleife einfach nur mitbenutzen willst reicht ``gobject.idle_add(callable)``.
Verfasst: Samstag 27. Juni 2009, 19:56
von theliquidwave
@ Dauerbaustelle: Danke für den Tipp, aber wie Leonidas schon schrieb, kann man das wohl eher vergessen.
@ Leonidas: Danke
~ Chris
Verfasst: Samstag 27. Juni 2009, 21:34
von Dauerbaustelle
Was heißt denn hier aua

Verfasst: Samstag 27. Juni 2009, 21:55
von Leonidas
Dauerbaustelle hat geschrieben:Was heißt denn hier aua

Aua, weil ich den Fehler kenne, nämlich von mir selbst vor einigen Jahren, wo ich mit Threads umständlich ``gobject.timeout_add`` implementiert habe.
