mehrere threads mit eigenen Fenstern

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
tom1step2pygtk
User
Beiträge: 1
Registriert: Dienstag 30. Januar 2007, 15:00

mehrere threads mit eigenen Fenstern

Beitragvon tom1step2pygtk » Dienstag 30. Januar 2007, 15:14

Hallo,

ich bin auf der Suche nach einer Lösung für folgendes Problem:
Wie programmiert man eine Applikation in Python gegen GTK+ (PyGtk), in der mehrere Threads jeweils ein eigenes Fenster haben und jeweils die gtk.main() Funktion rufen?

Hatte mir das in etwas so gedacht:

Code: Alles auswählen

from threading import Thread
import gtk

class MyThreadClass( Thread ):
  def __init__( self ):
    Thread.__init__( self )
    self.w = gtk.Window()
    b = gtk.Button( "Feed me" )
    b.connect( "clicked", self.Clicked )
    self.w.add( b )
    self.w.show_all()

  def run( self ):
    gtk.gdk.threads_enter()
    gtk.main()
    gtk.gdk.threads_leave()
   
  def Clicked( self, widget ):
    print widget
    gtk.main_quit()

def Clicked( widget ):   
  print widget
  gtk.main_quit()
 
gtk.gdk.threads_init()

w = gtk.Window()
b = gtk.Button( "I'm hungry!" )
b.connect( "clicked", Clicked )
w.add( b )
w.show_all()

t = MyThreadClass()
t.start()

gtk.gdk.threads_enter()
gtk.main()
gtk.gdk.threads_leave()


Leider geht das nicht. :?
Weiß da jemand einen Rat?

Vielen Dank,
tom1step2pygtk

P.S: ist natürlich nicht mein erster Schritt mit PyGtk :)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 30. Januar 2007, 21:02

Am besten du nutzt die entsprechenden Pseudothreads die dir gobject mit gobject.idle_add() und gobject.timeout_add() bietet - spart viele nerven.

Siehe auch meinen alten Thread zum Thema GTK+ und Threads.

Bei der Gelegenheit erlaube ich es mir, diesen Thread auch ins PyGTK-Forum zu verschieben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Yahoo [Bot]