Entry mit zwei Funktionen

Fragen zu Tkinter.
Antworten
m4tt22
User
Beiträge: 1
Registriert: Samstag 20. Januar 2018, 21:20

Samstag 20. Januar 2018, 21:45

Hallo an das Forum,

Hab vor 2-3 Monaten angefangen mir nebenher Python 3 beizubringen, nachdem ich zwei Jahre lang C/C++ in der Schule gelernt habe. Mittlerweile bin ich soweit, dass ich mir zugetraut habe ein etwas komplexeres Programm mit GUI (mit tkinter) zu programmieren. Das hat auch soweit geklappt bis ich nun auf ein Problem gestoßen bin. Ich nutze statt Klassen mehrere Funktionen. Nun hab ich in einer Funktion ein Entry Feld aber lass die Eingabe in einer anderen Funktion als Variable speichern und gebe diese dann in der ersten Funktion wieder aus. Das Problem ist nun, dass die zweite Funktion die Eingabe des Entry nicht erkennt. Ich hab aus Spaß den Teilbereich Seperat rauskopiert und den ersten Teil nicht als Funktion gemacht und die zweite Funktion so weit gelassen und siehe da, dass Programm funktioniert ohne Probleme :roll: . Also vermute ich, dass es daran liegt, dass ich mehrere Funktionen verwende. Funktioniert das grundsätzlich nicht mit mehreren Funktionen ?
Danke schonmal für die Antworten

Viele Grüße
m4tt22(Linus)

Fehlercode:

Code: Alles auswählen

====================== RESTART: D:\Desktop\MTG_Tool.py ======================
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "D:\Desktop\MTG_Tool.py", line 219, in hinzufuegen2
    kartenName = hinzEingabe1.get()
NameError: name 'hinzEingabe1' is not defined
>>>
Sirius3
User
Beiträge: 8609
Registriert: Sonntag 21. Oktober 2012, 17:20

Samstag 20. Januar 2018, 23:08

@m4tt22: globale Variablen, wie Du sie jetzt benutzt, machen ein Programm schwer verständlich, untestbar und nicht erweiterbar. Man kann zwar alles in Funktionen schreiben, die werden dann aber unter umständen sehr unübersichtlich, weil man alles, was man braucht per Argument übergeben muß. Der Weg der Wahl ist objektorientierte Programmierung.
Antworten