Wieso funktioniert der Python code nicht?
Hallo, ich bin sehr neu in python und habe gerade mein erstes Programm geschrieben mein Ziel ist es, dass wenn der User eine Zahl in die Textbox schreibt, dass dann ein gewünschter Text kommt aber irgendwie klappt das nicht bitte helft mir.
Hier der Code:
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text='Hallo Welt',
fg='#00ff00',
bg='orange',
font=('times', 25, 'bold', 'italic'))
eingabefeld_wert=tk.StringVar()
eingabefeld=tk.Entry(root, textvariable=eingabefeld_wert)
eingabefeld.pack()
if eingabefeld_wert == "5":
print("crazy")
label1.pack()
root.mainloop()
5 Antworten
Wenn das wirklich dein erster Code und nicht dein erstes GUI ist solltest du die Basics lernen und mit CLI anfangen, Tkinter kann noch viel komplizierter werden
Ansonsten bräuchten wir mal den Error
doch das öffnet sich aber wenn ich 5 in die textbox eingebe passiert nichts
Wieso sollte denn dann irgendetwas passieren?
In deinem Code machst du diese Abfrage exakt ein einziges Mal und startest erst danach die Main-Loop des GUI, ohne einen Event-Handler, eine Callback-Funktion oder irgendetwas in der Art an die TextBox zu hängen.
Das ist so, als würdest du dich darüber wundern, dass dein Auto nicht anspringt, während du gar kein Auto hast...
Klammer schliessen hast du vergessen. Die erste Klammer müsste glaub noch geschlossen werden.
nein die wird geschlossen das funktioniert ja auch aber die textbox nicht
danke, ich will wenn man 5 in die textbox schreibt, dass dann der print Befehl kommt
import tkinter as tk
def print_crazy(*args):
if eingabefeld_wert.get() == "5":
print("crazy")
root = tk.Tk()
label1 = tk.Label(root, text='Hallo Welt',
fg='#00ff00',
bg='orange',
font=('times', 25, 'bold', 'italic'))
eingabefeld_wert=tk.StringVar()
eingabefeld_wert.trace("w", print_crazy)
eingabefeld=tk.Entry(root, textvariable=eingabefeld_wert)
eingabefeld.pack()
label1.pack()
root.mainloop()
Mit trace kannst du bei jeder Eingabe ins Textfeld z.B. eine Funktion ausführen (print_crazy()), mit der du überprüfst ob eine 5 eingegeben wurde und falls ja, wird "crazy" ins Terminal geschrieben.
Du hast eine Klammer vergessen zu schließen oder ausversehen mit hingeschrieben:
font=('times', 25, 'bold', 'italic')) <-------
Bei mir heisst es nur
Traceback (most recent call last):
File "Untitled2.py", line 1, in <module>
import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'
Ansonsten gehts...
ist mein erstes GUI und es gibt keinen Error das ist ja das problem das funktioniert einfach nicht :
if eingabefeld_wert == "5":
print("crazy")