我真的不明白,为什么"结果"当我点击按钮时,标签没有更新。
如果有人能帮我理解!
谢谢
from tkinter import *
from tkinter import ttk
def add_function():
results.config(n1.get() + n2.get())
root = Tk()
root.geometry("500x100") # Size of the window
root.title("Add Calculator") # Title of the window
main_frame = ttk.Frame(root, padding="3 3 12 12")
main_frame.grid(column=0, row=0, sticky=(N,S,E,W))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
n1 = DoubleVar()
n1_entry = Entry(main_frame, width= 10, textvariable= n1)
n1_entry.grid(column=2, row=1, sticky=(N))
symbol_add = Label(main_frame, text="+")
symbol_add.grid(column=3, row=1, sticky=(N))
n2 = DoubleVar()
n2_entry = Entry(main_frame, width= 10, textvariable= n2)
n2_entry.grid(column=4, row=1, sticky=(N))
symbol_equal = Button(main_frame, width=10, text="=", command= add_function )
symbol_equal.grid(column=5, row=1, sticky=(N))
results = Label(main_frame, text=add_function(), background="#C0C0C0")
results.grid(column=6, row=1, sticky=(N))
root.mainloop()
我已经尝试了不同的变体,但它要么是我有一个错误,或者标签打印一个随机数,甚至在我修改条目之前。
这是因为你没有更新标签。从按钮命令返回一些东西是没有意义的,因为调用者不是你的代码。它是从mainloop
调用的,而mainloop
不知道如何处理返回码。
要更新标签,必须调用configure
方法:
results.configure(text=n1.get() + n2.get())