Fenster schliesen

Fragen zu Tkinter.
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Donnerstag 21. August 2003, 22:57

Hallo zusammen,

ich hätte da mal folgende Frage:
Wenn ich ein Fenster mit dem X schliese, wie bekomme
ich das in meiner Applikation mit. Gibt es da ein Terminate-
Ereignis oder so was. Ich sollte da dann noch was in
meinem Code ausführen.
Danke schon mal im Voraus.

alpha
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Donnerstag 21. August 2003, 23:00

Ich benutze übrigens Tk als Interface
Benutzeravatar
wuf
User
Beiträge: 1477
Registriert: Sonntag 8. Juni 2003, 09:50

Donnerstag 21. August 2003, 23:21

Hallo alpha

Probiere einmal folgendes

Gruss Fritz

Code: Alles auswählen

#~~ Folgende Anweisung wird benötigt um
#   beim schliessen des Fensters über
#   die Schaltfläche X, noch weiter
#   Programmkode auszuführen bevor das
#   Fenster endgültig schliesst.

top.protocol("WM_DELETE_WINDOW", MainExit)

def MainExit():
	# Noch auszuführender Code
	
Take it easy Mates!
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Montag 1. September 2003, 19:29

Hallo Fritz,

Deine Erklärung hab ich nicht so richtig kapiert...
woher stammt das Objekt "top"
Wo soll ich es in meinem Code plazieren?

Fragen über Fragen.
Danke schon mal im Voraus.

Gruß
Alpha
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Montag 1. September 2003, 20:40

top ist eine Art Synonym für den "absoluten Master", also root oder wie du auch die erste Instanz von Tkinter.Tk nennen magst ;)
Benutzeravatar
wuf
User
Beiträge: 1477
Registriert: Sonntag 8. Juni 2003, 09:50

Montag 1. September 2003, 23:35

Hallo Alpha

Mit top habe ich ein Fensterobjekt gemeint.
Der folgende Code verwendet root als
Fensterobjekt. Wenn das Fenster über die
Schaltfläche X geschlossen wird, ertönt noch
der Gong. Anstelle des Gongs kannst Du Dein
Code einsetzen, welcher vor dem Schliessen des
Fensters noch ausgeführt werden muss.

Gruss Fritz

Code: Alles auswählen

from Tkinter import *


if __name__ == '__main__':

	def Exit():
		# Noch auszuführender Code
		global root
		root.bell()
		root.destroy()
		sys.exit(0)

	#~~ Hauptfenster erzeugen
	root = Tk()

	#~~ Folgende Anweisung wird benötigt um
	#   beim schliessen des Fensters über
	#   die Schaltfläche X, noch weiteren
	#   Programmkode auszuführen bevor es
	#   endgültig geschlossen wird. Beim 
	#   schliessen des Fensters mit X wird
	#   die Funktion Exit aufgerufen 
	
	root.protocol("WM_DELETE_WINDOW", Exit)

	root.mainloop()
Take it easy Mates!
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Dienstag 16. September 2003, 22:51

Ich hab das jetzt mal bei mir ausprobiert.
Unter Linux funktioniert das auch wunderbar, lieder stürzt Python
unter Windows bei mir ab.
...Konnte Read nicht auf Speicher xyz ausführen... man kennt das ja :)
Es scheint an folgender Zeile zu liegen:
root.protocol("WM_DELETE_WINDOW", Exit)
Hat jemand eine Idee an was das liegen kann?

Gruß
alpha
Antworten