未显示Python计算器结果

问题描述

所以我试图制作一个像窗口一样打开的python计算器,但是在计算之前,我试图让它显示我单击的数字,一切正常,追加,列表,一切正常,直到它必须显示实际数字,并在其中显示什么,例如,我试图将标签更改为“ hi”,以查看列表是否存在问题,但是什么都没有显示,可以有人帮助我获取要在“结果”区域中显示的数字吗?这是我的代码:

root = tk.Tk()

color = '#263D42' 
numbers = []

Background = tk.Canvas(root,height=600,width=601,bg=color)
Background.pack()

resultBack = tk.Canvas(root,height=150,width=400,bg="#E4E0E0") 
resultBack.place(x=50,y=1)



root.title('Calculator')
root.iconphoto(False,tk.PhotoImage(file='plus.ico'))
root.resizable(width = False,height = False)
root.geometry("500x600")


for number in numbers:
    label = tk.Label(root,text="hi",bg="black")
    label.pack()

frame = tk.Frame(root,bg="white")
frame.place(relwidth=0.8,relheight=0.8,relx=0.1,rely=0.1) #frame

def addOne():
    for widget in frame.winfo_children():
     widget.destroy()
    numbers.append('1')
    for number in numbers:
        print(number)
        label = tk.Label(root,text=number,bg="black")
        label.pack()
    print(numbers)



one = tk.Button(root,text="1",padx=10,pady=5,fg="#000000",bg="#ffffff",command=addOne)
one.place(x=30,y=30)



root.mainloop()

解决方法

您不应该那样创建和删除标签;您可以更改它们。 也许尝试这样的事情:

import tkinter as tk

root = tk.Tk()

numbers = []

root.title('Calculator')
root.resizable(width = False,height = False)
root.geometry("500x600")

label_text = tk.StringVar()
label_text.set('hi')
label = tk.Label(root,textvariable=label_text)
label.pack()

frame = tk.Frame(root,bg="white")
frame.place(relwidth=0.8,relheight=0.8,relx=0.1,rely=0.1) #frame

def addOne():
    numbers.append(1)
    work = ""
    for i in numbers:
        work+=str(i)
    label_text.set(work)

one = tk.Button(root,text="1",padx=10,pady=5,fg="#000000",bg="#ffffff",command=addOne)
one.place(x=30,y=30)

root.mainloop()

那应该显示数字。 StringVars是您做这类事情的朋友。当您更新它们时,tk会自动更新它们所附加的小部件。 从这里开始,您可能希望将其移动以使其看起来更好等,并且您可能不想为每个按钮添加方法(addTwo,addThree,addFour等)。如果您需要更多帮助,请告诉我们。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...