Seite 1 von 1

Fenster schliesen

Verfasst: Donnerstag 21. August 2003, 22:57
von alpha
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

was vergessen

Verfasst: Donnerstag 21. August 2003, 23:00
von alpha
Ich benutze übrigens Tk als Interface

Verfasst: Donnerstag 21. August 2003, 23:21
von wuf
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
	

wie???

Verfasst: Montag 1. September 2003, 19:29
von alpha
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

Verfasst: Montag 1. September 2003, 20:40
von Milan
top ist eine Art Synonym für den "absoluten Master", also root oder wie du auch die erste Instanz von Tkinter.Tk nennen magst ;)

Verfasst: Montag 1. September 2003, 23:35
von wuf
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()

Absturz

Verfasst: Dienstag 16. September 2003, 22:51
von alpha
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