Seite 1 von 1

Hauptfenster nach Startung Unterfenster deaktivieren

Verfasst: Sonntag 1. März 2015, 13:56
von Papp Nase
Hi,

ich habe ein Hauptfenster in tkinter mit Namen root. Ich habe einen Button, mit dem ich ein Unterfenster starte.

Ich möchte es jetzt so haben, dass ich im Hauptfenster solange nichts machen kann, bis das Unterfenster geschlossen wurde. Wie geht das?

Code: Alles auswählen

try:
    import tkinter as tk
except:
    import Tkinter as tk

class Sekundaermenue():
    def __init__(self, master=None):
        self._root = master
        self._ownframe = None
        
    def open(self):
        self._ownframe = tk.Toplevel()
        
        close_button = tk.Button (master=self._ownframe, command=self.close, text="fertig")
        close_button.pack()
   
    def close(self):
        # self._ownframe.quit()
        self._ownframe.destroy()

def main ():
    root = tk.Tk()
    
    mysek = Sekundaermenue()
    
    def do_exit():
        root.quit()
    
    submenue_button = tk.Button (master=root, text="subframe", command=mysek.open )
    submenue_button.pack()
   
    exit_button = tk.Button (master=root, text="Beenden", command=do_exit)
    exit_button.pack()
    root.mainloop()

if __name__ == "__main__":
    main ()

Re: Hauptfenster nach Startung Unterfenster deaktivieren

Verfasst: Sonntag 1. März 2015, 14:48
von BlackJack
@Papp Nase: `grab_set()` und `wait_window()` sind die Methoden die man dafür braucht. Siehe auch Effbot's Dialog Windows.

Ich würde mir die Arbeit dafür aber sparen und eigene modale Dialoge von `tkSimpleDialog.Dialog` aus der Standardbibliothek ableiten und dort `body()` und `buttonbox()` und gegebenenfalls `validate()` und/oder `apply()` passend überschreiben.

Re: Hauptfenster nach Startung Unterfenster deaktivieren

Verfasst: Sonntag 1. März 2015, 16:15
von Papp Nase
Der tkSimpleDialog-Kram funktioniert bei mir irgendwie nicht.

Ist tkSimpleDialog nicht Bestandteil von tkinter, sondern muss zusätzlich installiert werden?

Das Paket
"from tkColorChooser import askcolor "

hab ich z.B. auch nicht.

Re: Hauptfenster nach Startung Unterfenster deaktivieren

Verfasst: Sonntag 1. März 2015, 17:06
von BlackJack
@Papp Nase: Aus dem Quelltext wird nicht so ganz klar welche Python-Version Du eigentlich verwendest. Du hast schon in der Dokumentation nachgesehen wie die Module heisse und von wo sie importiert werden müssen?