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
            
			
									
						
										
						2 Fenster, aber nur 1 darf bearbeitet werden
- 
				hans
 - User
 - Beiträge: 728
 - Registriert: Sonntag 22. September 2002, 08:32
 - Wohnort: Sauerland
 - Kontaktdaten:
 
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
            
			
									
						
										
						Bei deinem Namen könnte man doch eigentlich eher erwarten, dass du QT einsetzt.
Hans
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:
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
            
			
									
						
										
						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()Jan
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
            
			
									
						
										
						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
- 
				Gast
 
Hallo Tux!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?
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
Jan
