Seite 1 von 1

KeinE Funktion bei zweitem Fenster

Verfasst: Freitag 9. November 2012, 16:51
von Nobuddy
Hallo zusammen

Mein Problem ist, daß ich von meinem Hauptfenster ein zweites Fenster öffne, um damit zu arbeiten.
Im zweiten Fenster ist eine Listbox, die das Auswahlkriterium an ein Testfenster das mit grid erstellt ist, weiter geben soll.
Wenn ich das zweite Fenster direkt starte, also nicht über das Hauptfenster, funktioniert alles prima.
Starte ich das zweite Fenster über das Hauptfenster, so öffnet sich zwar dieses, aber die Datenübergabe aus der Listbox an das Textfenster funktioniert nicht.

Ich habe dazu 3 Dateien. Das erste ist das Hauptfenster die 'start_gui.py', mit 3 Buttons die jeweils die Datei 'gui_listbox_work.py' ansteuert, das zweite Fenster. Die dritte Datei ist die 'gui_list_names.py', die Daten an das zweite Fenster übergibt.

Damit Ihr selbst testen könnt was ich meine, könnt Ihr die 3 Dateien hier https://gist.github.com/4046428 anschauen und testen.

Könnt Ihr mir sagen, warum dies so nicht funktioniert, obwohl beim direkten Starten von 'gui_listbox_work.py' dies funktioniert?
Welche Möglichkeiten habe ich, um das Problem zu lösen?

Grüße Nobuddy

Re: KeinE Funktion bei zweitem Fenster

Verfasst: Freitag 9. November 2012, 17:42
von wuf
Hi Nobuddy

Jetzt ist es wieder übersichtlicher. In einem Tkinter Skript darfst du tk.Tk() nur einmal aufrufen um mit dem Hauptfenster zu beginnen. Für weitere Fenster musst du das Toplevel Widget verwenden. Somit ist die Modifikation very simple. Ersetze in der Datei gui_listbox_work.py die Zeile:

Code: Alles auswählen

self.root = tk.Tk()
durch

Code: Alles auswählen

self.root = tk.Toplevel()
die Methode run:

Code: Alles auswählen

    def run(self):
        self.root.mainloop()
braucht es nicht mehr.

Gruß wuf :wink:

Re: KeinE Funktion bei zweitem Fenster

Verfasst: Freitag 9. November 2012, 18:09
von Nobuddy
Hallo wuf,

hätte nicht gedacht, daß die Lösung so einfach ist, funktioniert super! :wink:
Einfach genial, jetzt kann ich an meinem Projekt weitermachen. :D

Danke und Grüße Nobuddy