Выдает неверный результат при окончании работы
from tkinter import *
from tkinter import messagebox
def display_full_name():
messagebox.showinfo("Итоговая сумму", st)
root = Tk()
root.title("Определение стоимости звонка")
name = IntVar()
surname = IntVar()
st = IntVar()
name_label = Label(text="Введите код города:")
surname_label = Label(text="Введите длительность разговора:")
name_label.grid(row=0, column=0, sticky="w")
surname_label.grid(row=1, column=0, sticky="w")
name_entry = Entry(textvariable=name)
surname_entry = Entry(textvariable=surname)
name_entry.grid(row=0,column=1, padx=5, pady=5)
surname_entry.grid(row=1,column=1, padx=5, pady=5)
if name == 343:
st == 15*surname
elif name == 381:
st == 18*surname
elif name == 473:
st == 13*surname
elif name == 48:
st == 11*surname
message_button = Button(text="Рассчитать", command=display_full_name)
message_button.grid(row=2,column=1, padx=5, pady=5, sticky="e")
root.mainloop()
После введения значений , код выдает PY_VAR2, а должен значение st
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Куча ошибок...
Считаете до того как ввели значения.
Обращаетесь к tk-переменным напрямую, а не через метод get().
== вместо = при присваивании.
tk-переменная st перезаписывается обычной питоновской.
from tkinter import *
from tkinter import messagebox
def display_full_code():
price = {343: 15, 381: 18, 473: 13, 48: 11}
code_val = code.get()
duration_val = duration.get()
if code_val in price:
st = price[code_val] * duration_val
else:
st = f"Код города `{code_val}` не поддерживается."
messagebox.showinfo("Итоговая сумма", st)
root = Tk()
root.title("Определение стоимости звонка")
code = IntVar()
duration = IntVar()
code_label = Label(text="Введите код города:")
duration_label = Label(text="Введите длительность разговора:")
code_label.grid(row=0, column=0, sticky="w")
duration_label.grid(row=1, column=0, sticky="w")
code_entry = Entry(textvariable=code)
duration_entry = Entry(textvariable=duration)
code_entry.grid(row=0,column=1, padx=5, pady=5)
duration_entry.grid(row=1,column=1, padx=5, pady=5)
message_button = Button(text="Рассчитать", command=display_full_code)
message_button.grid(row=2,column=1, padx=5, pady=5, sticky="e")
root.mainloop()