Tkinter语言 - 在标签中打印返回函数



我真的不明白,为什么"结果"当我点击按钮时,标签没有更新。

如果有人能帮我理解!

谢谢

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())

相关内容

  • 没有找到相关文章

最新更新