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 :P
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 :twisted:

Verfasst: Samstag 27. Juni 2009, 21:55
von Leonidas
Dauerbaustelle hat geschrieben:Was heißt denn hier aua :twisted:
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. :D