Hilfefenster einbauen

Fragen zu Tkinter.
Antworten
Benutzeravatar
Goswin
User
Beiträge: 361
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen

Montag 13. November 2017, 00:03

Mit einem Code wie

Code: Alles auswählen

#...

hilfefst = t.Toplevel()
hilfetext = t.Text(hilfefst, width=80,height=2)
hilfetext.grid()
hilfefst.geometry("600x400+600+200")
hilfefst.state(newstate='withdraw')

meinmenu = t.Menu()
hauptfenster.config(menu=meinmenu)
#
def hilfe(): hilfefst.state(newstate='normal')
meinmenu.add_command(command=hilfe)

#...
versuche ich, ein aufrufbares Textfenster in meine Anwendung einzubauen, was aber einige Probleme mit sich bringt:

(1) (s.u.)
Mein Hilfefenster kann nur einmal augerufen werden. Sobald ich es wegklicke und versuche, es neu aufzurufen, stürzt die Anwendung ab. Vermutlich deshalb, weil das entsprechende Objekt zerstört wurde, aber wie vermeide ich das, ohne die gesamte praktische Fensterdekoration mit einem 'overrideredirect' zu entfernen?

(2)
Wenn ich das Hilfefenster mittels 'geometry' positioniere, muss ich immer auch die Größe des Fensters aufwendig ausrechnen und mit eingeben, was sehr fehleranfällig ist. Wie kann ich das Fenster einfach nur positionieren, so dass es immer die Mindestgröße hat, die vom grid-Manager anhand der enthaltenen Widgets ausgerechnet wird?


NACHTRAG:
Problem (1) mit Hilfe von "protocol" bereits gelöst, dank der Antwort auf Windys Frage "Zustand von Toplevel". Es bleibt Problem (2) mit der "geometry".
Antworten