Seite 1 von 1

Irgendwas mit einem Entry Feld

Verfasst: Freitag 14. Mai 2021, 09:27
von ElBarto
Ich möchte den in einem Eingabe Feld eingegebenen Text auslesen und den ausgelesenen Text dann mit einer if-abfrage überprüfen ob es ein bestimmter text ist.
Bei mir kommt aber immer nur die Fehlermeldung die ich einprogrammiert habe, wenn es nicht der richtige Text ist.
Meine Theorie ist ja, dass der Wert des Entryfeldes nicht richtig ausgelesen wird.
Wenn jemand weiß was ich falsch gemacht habe soll er es mir mitteilen.
Lg ElBarto

Re: Irgendwas mit einem Entry Feld

Verfasst: Freitag 14. Mai 2021, 09:38
von sparrow
@ElBarto: Das wird schwierig, wenn du nicht zeigst, was du tust. Also deinen Code.

Re: Irgendwas mit einem Entry Feld

Verfasst: Freitag 14. Mai 2021, 09:47
von ElBarto
J a hier ist mein code:
from tkinter import *
from tkinter import messagebox

fenster= Tk()
fenster.title("Test")
Label(fenster, text="Finde die richtige Nummer und gebe sie in das feld ein =>") .grid(row=0)
e1 = Entry(fenster)
e1.grid(row=0, column=1)
def check():
e1.get()
wert = e1.get()
if wert == 240511:
return Label("Richtig,Öffne den Ordner Geschenk und verwende diese Zahl als Passwort")
else :
messagebox.showinfo( "Falsch", "Suche weiter")
check_button = Button(fenster, text="Überprüfen", command=check).grid(row=1,column=0)
e1.get()
wert = e1.get()

fenster.mainloop()

Re: Irgendwas mit einem Entry Feld

Verfasst: Freitag 14. Mai 2021, 10:05
von Sirius3
*-Importe sind schlecht, weil man nicht nachvollziehen kann, woher welcher Name kommt.
Alles was eine Funktion braucht, muß sie auch über ihre Argumente bekommen, `e1` kommt aber in `check` so dem nichts. Benutze keine globalen Variablen.
Man baut einmal ein Fenster auf und erzeugt nicht nachträglich noch Label. Das Label wird auch gar nicht benutzt, der Rückgabewert von `check` landet im Nichts.
Auf oberster Ebene dürfen nur Konstanten oder (Funktions-)Definitionen stehen.
Die puren ›e1.get()‹-Aufrufe sind unsinnig, weil sie mit dem Rückgabewert nichts machen.
`wert` in der vorletzten Zeile wird gar nicht benutzt, hat aber auch keinen sinnvollen Wert, weil zu diesem Zeitpunkt der Nutzer noch gar keine Chance hatte, etwas ins Entry-Feld einzutragen.
check_button enthält den Wert None, ist also auch nicht sinnvoll.
`e1` ist ein sehr schlechter Variablenname, weil nichtssagend.
`get` liefert einen String und keine Zahl.

Code: Alles auswählen

from functools import partial
import tkinter as tk
from tkinter import messagebox

def check(password):
    wert = password.get()
    if wert == "240511":
        messagebox.showinfo("Richtig", "Öffne den Ordner Geschenk und verwende diese Zahl als Passwort")
    else :
        messagebox.showinfo("Falsch", "Suche weiter")       


def main():
    fenster= tk.Tk()
    fenster.title("Test")
    tk.Label(fenster, text="Finde die richtige Nummer und gebe sie in das feld ein =>").grid(row=0, column=0)
    password = tk.Entry(fenster)
    password.grid(row=0, column=1)
    tk.Button(fenster, text="Überprüfen", command=partial(check, password)).grid(row=1,column=0)
    fenster.mainloop()

if __name__ == '__main__':
    main()

Re: Irgendwas mit einem Entry Feld

Verfasst: Freitag 14. Mai 2021, 10:14
von ElBarto
Danke für die Hilfe