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
Irgendwas mit einem Entry Feld
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()
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()
*-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.
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()