Вы можете создать кнопку для запуска кода, который будет получать текст из var.get()
или E.get()
и что-то делать
E = Entry(top, text='var', textvariable=var, bd=5)
E.pack()
B = Button(top, text='OK', command=faultCodes)
B.pack()
def faultCodes():
entry_text = var.get()
if entry_text == "500" or entry_text == "514":
print("Follow fault code 9621F4A4.")
else:
print("Enter a fault code.")
label = Label(top, text=entry_text)
label.pack()
Или вы можете привязать <Return>
к Entry
для запуска функции при нажатии Enter
в Entry
. Tkinter запустит функцию с event
в качестве аргумента, поэтому функция должна получить этот аргумент.
E = Entry(top, text='var', textvariable=var, bd=5)
E.pack()
E.bind('<Return>', faultCodes)
def faultCodes(event):
entry_text = var.get()
if entry_text == "500" or entry_text == "514":
print("Follow fault code 9621F4A4.")
else:
print("Enter a fault code.")
label = Label(top, text=entry_text)
label.pack()
Вы можете даже использовать оба метода с одной и той же функцией, если используете event=None
Полный рабочий пример
from tkinter import *
def faultCodes(event=None):
entry_text = var.get()
if entry_text == "500" or entry_text == "514":
print("Follow fault code 9621F4A4.")
else:
print("Enter a fault code.")
label = Label(top, text=entry_text)
label.pack()
top = Tk()
var = StringVar()
E = Entry(top, text='var', textvariable=var, bd=5)
E.pack()
E.bind('<Return>', faultCodes)
B = Button(top, text='OK', command=faultCodes)
B.pack()
top.mainloop()
Кстати: var.get()
дает строку, поэтому я сравниваю со строками "500", "514" - не с целыми числами 500, 514.
РЕДАКТИРОВАТЬ: пример с Label
from tkinter import *
# --- function ---
def faultCodes(event=None):
entry_text = var.get()
if entry_text == "500" or entry_text == "514":
label['text'] = "Follow fault code 9621F4A4."
else:
label['text'] = "Enter a fault code."
# --- main ---
top = Tk()
var = StringVar()
E = Entry(top, text='var', textvariable=var, bd=5)
E.pack()
E.bind('<Return>', faultCodes)
B = Button(top, text='OK', command=faultCodes)
B.pack()
label = Label(top, text='')
label.pack()
top.mainloop()
РЕДАКТИРОВАТЬ: пример со словарем
from tkinter import *
data = {
"500": "Follow fault code 9621F4A4.",
"514": "Follow fault code 9621F4A4.",
# ...add more ...
}
# --- function ---
def faultCodes(event=None):
entry_text = var.get()
if entry_text in data:
label['text'] = data[entry_text]
else:
label['text'] = "Enter a fault code."
# --- main ---
top = Tk()
var = StringVar()
E = Entry(top, text='var', textvariable=var, bd=5)
E.pack()
E.bind('<Return>', faultCodes)
B = Button(top, text='OK', command=faultCodes)
B.pack()
label = Label(top, text='')
label.pack()
top.mainloop()