Bind verwenden in zwei Fenster

Fragen zu Tkinter.
Antworten
ossi047
User
Beiträge: 46
Registriert: Donnerstag 19. Dezember 2019, 15:57

Hallo Ihr Spezialisten ich hätte da eine Frage:
Ich habe ein main Fenster und ein toplevel Fenster.

In der Main habe ich Comboboxen welche ich mit einem bind "Enter" versehen habe.
Wenn ich mit dem Cursor über die Combobox drüber fahre wird ein Hilfetext im Toplevel
Fenster im Feld Text angezeigt. Dem Bind ist ein Funktion hinterlegt.

def textein01(event):
htext.insert(END, "1 gibt bitte einen bestimmten Wert ein")

Das funktioniert auch wenn der Code von def textein01 in der main eingetragen ist.
Da es aber viele Hilfetexte werden möchte ich diese in eine eigene hilfe.py schreiben.
Die Funktion(en) wie oben werden mit Import in die Main übernommen. Bei Start des Programmes
kommt aber immer die Fehlermeldung " name 'htext' is not defined". Das Textfeld htext gibts aber in der main.

Der Wunsch wäre eben alle hilftexte in einer eigenen Datei zu haben um die main übersichtlicher zu machen.
Angezeit werden die Hilfetexte im Toplevel Fenster.

Könnt Ihr mir da helfen. Besten Dank im Vorraus.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Benutze keine globalen Variablen. Alles was Funktionen brauchen, sollten sie über ihre Argumente bekommen. Der Hilfetext sollte wohl eher in einem Label als in einem Textfeld stehen. Benutze keine Abkürzungen und keine nummerierten Variablen, benutze aussagekräftige Variablennamen, also hilfe_text.
Wenn Du viele Comboboxen mit so einem Hilfetext hast, wäre es wahrscheinlich sinnvoll eine Klasse dafür zu schreiben, um unnötiges Kopieren von Code zu vermeiden.
Die Aufteilung an der Stelle in mehrere Module wäre auch ungünstig, weil es Dinge trennt, die eigentlich zusammengehören.
ossi047
User
Beiträge: 46
Registriert: Donnerstag 19. Dezember 2019, 15:57

Danke für die guten Ratschläge. Für jede Combobox gibts Hilfetexte welche mehrere Zeilen haben. Zum Kopieren gibts da nix.
Grundsätzlich eine Frage: Macht das einen Sinn wenn dann die main 5000 Zeilen oder mehr hat. Sollte man die Grafik und
die Programme sowie die Hilfetext nicht aufteilen? Wegen der Geschwindigkeit und Übersichtlichkeit? Das mit der Klasse
muss ich mir noch ansehen da kenn ich mich noch nicht aus.
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@ossi047: 5.000 Zeilen sind ein bisschen viel. Das klingt ein bisschen komisch. Beispielweise als wenn da Daten im Quelltext sind die vielleicht besser in einer Datendatei aufgehoben wären.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
ossi047
User
Beiträge: 46
Registriert: Donnerstag 19. Dezember 2019, 15:57

Na ja habe ein Notebook mit 6 Seiten und habe jetzt bereit 690 Zeilen für die erste Seite!! Funktionen sind schon ausgelagert. Das mit dem bind hat sich erledigt, ich habe Tooltip entdeckt. Danke nochmals für das Interesse.
Antworten