Seite 1 von 1
2 Fenster, aber nur 1 darf bearbeitet werden
Verfasst: Mittwoch 2. April 2003, 17:07
von Tux
Hi @ll!
Wie immer bin ich im Tkinter!
Ich habe folgendes Problem (vereinfacht):
Ich habe ein Fenster mit einem Button! Sobald man auf diesen Button klickt, soll ein neues Fenster geöffnet werden! Wenn das neue Fenster geöffnet wurde, soll man nur auf dieses zugreifen können - das 1. Fenster darf nichts mehr machen! Im 2. Fenster soll wieder ein Button sein - klickt man auf diesen, so soll sich dieses 2. Fenster schließen und die im Fenster 1 wieder alles funktionieren! Wie geht das?
Ich hoffe iihr versteht mich!
Danke schon mal
ICH
Verfasst: Mittwoch 2. April 2003, 21:28
von hans
Hi Tux, sieht nicht gut aus. Daran haben wir uns schon mal die Zähne ausgebissen. Siehe hier
http://python.sandtner.net/viewtopic.php?t=196
Bei deinem Namen könnte man doch eigentlich eher erwarten, dass du QT einsetzt.
Hans
Re: 2 Fenster, aber nur 1 darf bearbeitet werden
Verfasst: Mittwoch 2. April 2003, 22:07
von Voges
Hallo!
Also, wenn ich das richtig sehe, willst Du einen sog. 'modalen Dialog'. Sowas geht mit Tkinter natürlich auch, am einfachsten wohl mit der Klasse tkSimpleDialog.Dialog.
Kleines Beispiel:
Code: Alles auswählen
from Tkinter import *
import tkSimpleDialog
class modalerDialog(tkSimpleDialog.Dialog):
def body(self, master):
self.title("Ein modaler Dialog")
Label(master,text='Ich bin ein modaler Dialog').pack()
def dialogOeffnen():
modalerDialog(root)
root = Tk()
Button(root,text="modalen Dialog oeffnen",command=dialogOeffnen).pack()
root.mainloop()
Man leitet also immer von der Klasse tkSimpleDialog.Dialog seine eigene Dialogklasse ab und überschreibt je nach Bedarf die Methoden, die tkSimpleDialog.Dialog einem ansonsten vererben würde.
\Python22\Lib\lib-tk\tkSimpleDialog.py sollte man sich auf jeden Fall angucken.
Jan
Buttons
Verfasst: Dienstag 13. Mai 2003, 05:45
von Tux
Hi Voges!
Danke erstmal für dein Bsp.!
Hier noch eine Frage: Bei dem Dialog sind unten die Buttons OK und Cancel ! Ist es möglich, dass man für diese Buttons selbst ein commando definiert? Wenn ja, wie?
Danke
ICH
Re: Buttons
Verfasst: Dienstag 13. Mai 2003, 12:07
von Gast
Tux hat geschrieben:Hier noch eine Frage: Bei dem Dialog sind unten die Buttons OK und Cancel ! Ist es möglich, dass man für diese Buttons selbst ein commando definiert?
Hallo Tux!
Wenn es z.B. nur darum geht, beim Druck auf den OK-Button zu prüfen, ob im Dialog gemachte Angaben z.B. richtig oder ausreichend sind, kannst Du die Methode validate() überschreiben.
Code: Alles auswählen
def validate(self):
if <bedingung>:
return 1 # alles ok, Dialog wird beendet
else:
# hier ggf. Fehlermeldung
return 0 # Dialog wird nicht beendet
Wenn Du höchstmöglichen Einfluss auf die Buttons haben willst (z.B. weitere hinzufügen, eigene Methoden aufrufen etc.), dann überschreibe die Methode buttonbox(). Einfach die Methode aus der Datei tkSimpleDialog.py rauskopieren, in die eigene Dialog-Klasse einfügen und dann nach belieben verändern.
Jan