Zoff mit tkMessageBoxen
Verfasst: Mittwoch 10. September 2003, 17:49
hallo zusammen!
jetzt habe ich echt keine ahnung mehr wo der fehler liegen könnte und die fantasie geht mir auch aus, also wende ich mich mal ans forum. folgender code ist nur ein beispiel um das problem darzustellen:
erstellt werden soll also eine anwendung die mehrere fenster hat und es kann ja durchaussein, dass der anwender fenster, die er eh nicht mehr braucht, z.b. ein menüfenster weil er keine auswahl mehr treffen will, über "x" schliesst. ich habe wie man sieht auch probiert root expliziert zu zerstören.
nun zum eigentlichen problem: schliesst der anwender das FensterA mit "x" und ruft dann über den Button "Ende" vom FensterB die funtkion ende auf, wird eine tkMessageBox augerufen um den Anwender zu fragen ob er sicher beenden will, aber leider wird auch gleichzeitig ein neues root erschaffen!!!
also FensterA über "x" schliessen" anwendung mit Button "Ende" von FensterB beenden = tkMessagebox und neues Fenster!!!
umgekehrt tritt das problem übrigens nicht auf.
wer kann mir da weiterhelfen???
vielen dank im voraus
mfg
roland
jetzt habe ich echt keine ahnung mehr wo der fehler liegen könnte und die fantasie geht mir auch aus, also wende ich mich mal ans forum. folgender code ist nur ein beispiel um das problem darzustellen:
Code: Alles auswählen
#/usr/bin/python
from Tkinter import *
import tkMessageBox
def ende():
antwort=tkMessageBox.askyesno("Warnung","Wollen Sie sicher beenden?")
if antwort==1:
sys.exit(0)
def mainexit():
root.destroy()
def neu():
root=Tk()
root.title("FensterB")
label=Label(root,text="///GARO_GUI")
label.grid(row=0,column=0,columnspan=2)
#Button nur zur Zierde einstweilen
button=Button(root, text="Irgendwas")
button.grid(row=1,column=0,columnspan=2)
button2=Button(root, text="Ende",command=ende)
button2.grid(row=2,column=0,columnspan=2)
root=Tk()
root.title("FensterA")
root.protocol("WM_DELETE_WINDOW", mainexit)
label=Label(root,text="///GARO_GUI")
label.grid(row=0,column=0,columnspan=2)
button=Button(root, text="Neues Fenster",command=neu)
button.grid(row=1,column=0,columnspan=2)
button2=Button(root,text="Ende",command=ende)
button2.grid(row=2,column=0,columnspan=2)
root.mainloop()
nun zum eigentlichen problem: schliesst der anwender das FensterA mit "x" und ruft dann über den Button "Ende" vom FensterB die funtkion ende auf, wird eine tkMessageBox augerufen um den Anwender zu fragen ob er sicher beenden will, aber leider wird auch gleichzeitig ein neues root erschaffen!!!
also FensterA über "x" schliessen" anwendung mit Button "Ende" von FensterB beenden = tkMessagebox und neues Fenster!!!
umgekehrt tritt das problem übrigens nicht auf.
wer kann mir da weiterhelfen???
vielen dank im voraus
mfg
roland