zwei Fenster seperat öffnen

Fragen zu Tkinter.
Antworten
Theo
User
Beiträge: 17
Registriert: Montag 24. August 2009, 16:11
Kontaktdaten:

Hallo,

ich bin ganz neu hier und hab schon auf den letzten Seiten nach einem ähnlichen Problem gesucht, aber nix gefunden. Und zwar ich öffne ein Fenster mit zwei Buttons B1 = "F1" und B2 = "F2". Wenn ich auf B1 klicke soll sich ein Fenster öffnen und das gleiche bei B2, beide Fenster dürfen nur einmal existieren. Wenn ich aber das "Hauptfenster" schliesse, sollen beide Fenster mitgeschlossen werden. Hat jmd ne Idee wie ich das am besten bewerkstellige? Bin für jede Anregung dankbar.

LG Theo
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Hallo Theo, willkommen im Forum!

Hast du denn schon irgendetwas an Code, das du zeigen könntest?
Schreib doch mal den Code, der ein Fenster mit zwei Buttons erstellt, die beim Klick auf die Konsole "Öffne Fenster 1" und "Öffne Fenster 2" schreiben.

Der Rest ist dann auch keine große Sache mehr. Das Stichwort heißt "Toplevel"-Widget. Eine wichtige Adresse für Tkinter-Programmierer ist http://effbot.org/tkinterbook/tkinter-index.htm. Nicht mehr in allen Sachen upto date, aber dafür sehr umfangreich.
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Hallo Theo,
haettest Du noch eine Seite weiter gesucht, dann haettest Du es gefunden: :)
http://www.python-forum.de/post-124581.html#124581

In dem Beispiel sollte genuegend Material vorhanden sein.

:wink:
yipyip
Theo
User
Beiträge: 17
Registriert: Montag 24. August 2009, 16:11
Kontaktdaten:

Hallo, erstmals vielen Dank fuer eure Antworten! Ich hab mein Problem mit den TopLevel Windows gelöst und @yipyip den post hatte ich mir auch angeschaut, aber da hat es noch nicht klick gemacht ^^

Eine Frage hab ich dennoch. Verträgt sich python generell nicht mit zwei mainloops oder liegt das am Simulator.

Kurze Info zu dem Problem.

Ich arbeite mit 3D Create, dass ist wie der Name schon sagt ein 3D Simulator, welcher derzeit mit Python Vers. 2.2 arbeitet. Ich habe also zwei Buttons einer mit F1 und der andere mit F2. Hier mal der Code.

Code: Alles auswählen

from Tkinter import *

def f1_open():
  haupt_f1 = Tk()
  canvas_f1 = Canvas(haupt_f1)
  canvas_f1.pack()
  canvas_f1.create_oval(50,50,70,70)
  canvas_f1.coords(1,90,90,110,110)
  haupt_f1.mainloop()

def f2_open():
  haupt_f2 = Tk()
  canvas_f2 = Canvas(haupt_f2)
  canvas_f2.pack()
  canvas_f2.create_oval(50,50,70,70)
  canvas_f2.coords(1,90,90,110,110)
  haupt_f2.mainloop()

comp = getComponent()

f1 = comp.getProperty("F1")
f2 = comp.getProperty("F2")

f1.OnChanged = f1_open
f2.OnChanged = f2_open
also ein klick auf den jeweiligen Button löst die Funktion f1_open oder f2_open aus. Wenn ich nur ein Fenster oeffne und dann wieder schliesse und danach das andere oeffne, klappt alles, aber sobald ich ein Fenster offen lasse und dann das andere aufmache, schmiert mir 3D Create ab. Ist das nen Propblem von Python oder vom Simulator.

Vielen dank schonmal

Theo

Edit (Leonidas): Code-Highlighting eingeschaltet.
BlackJack

@Theo: Tk verträgt keine zwei "Hauptfenster".
Antworten