mehrere threads mit eigenen Fenstern

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

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 :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Antworten