Wieso funktioniert der Python code nicht?

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

Pommesbudeleo 
Fragesteller
 18.06.2021, 18:41

ist mein erstes GUI und es gibt keinen Error das ist ja das problem das funktioniert einfach nicht :

if eingabefeld_wert == "5":

    print("crazy")

0
Pommesbudeleo 
Fragesteller
 18.06.2021, 18:42
@mompf03231

doch das öffnet sich aber wenn ich 5 in die textbox eingebe passiert nichts

0
Zahhak  18.06.2021, 18:47
@Pommesbudeleo

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...

0

Klammer schliessen hast du vergessen. Die erste Klammer müsste glaub noch geschlossen werden.

Laurin953  18.06.2021, 18:39

Also nach "hallo Welt"

0
Pommesbudeleo 
Fragesteller
 18.06.2021, 18:40

nein die wird geschlossen das funktioniert ja auch aber die textbox nicht

0
Pommesbudeleo 
Fragesteller
 18.06.2021, 18:43
@Laurin953

danke, ich will wenn man 5 in die textbox schreibt, dass dann der print Befehl kommt

0
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...

Pommesbudeleo 
Fragesteller
 18.06.2021, 18:50

komisch bei mir nicht

0