Tkinter GUI 计算器
嘿,我想让我的计算器在按下按钮时,显示出被点击按钮上的数字。有没有人知道怎么用最有效的方法来实现这个?这是我目前的代码。
import tkinter
window = tkinter.Tk()
window.geometry("150x170")
lbl1 = tkinter.Label(text = "Calculator").grid(row = 1, column = 4)
displaynum = 0
lb = tkinter.Label(text = displaynum, borderwidth = 4).grid(row = 2, column = 4)
def displayednum():
global displaynum
lbl = tkinter.Label(text = displaynum, borderwidth = 4).grid(row = 2, column = 4)
for n in range(1,4):
btn1 = tkinter.Button(text = n,borderwidth = 2, command = changenumber ).grid(row = 3,column = n*2)
lbl2 = tkinter.Label(text = " ").grid(row = 3, column = n*2+1)
for u in range(1,4):
btn2 = tkinter.Button(text = u+3,borderwidth = 2).grid(row = 6, column = u*2)
lbl3 = tkinter.Label(text = " ").grid(row = 6, column = u*2+1)
for m in range(1,4):
btn2 = tkinter.Button(text = m+6,borderwidth = 2).grid(row = 9, column = m*2)
lbl4 = tkinter.Label(text = " ").grid(row = 9, column = m*2+1)
window.mainloop()
有人有解决办法吗?
1 个回答
0
改变标签文本的函数可以这样实现:
def changenumber(label, val):
label.config(text=str(val))
不过在给变量赋值的时候要小心哦。因为这两个变量 lbl1 和 lb 现在都是 None,也就是没有值。你可以试试这样做:
lbl1 = tkinter.Label(text = "Calculator")
lbl1.grid(row = 1, column = 4)
lb = tkinter.Label(text = displaynum, borderwidth = 4)
lb.grid(row = 2, column = 4)