我厌倦了在函数中更改表达式变量。我在函数中使用了全局词,但它仍然不起作用。这是一个 tkinter 问题。请帮助。
这是代码的一部分
expression = ''
sum_label = Label(root, text=expression, bg='#D3D3D3', padx=113, pady=14)
sum_label.place(x=20, y=10)
#Numbers
def press(num):
global expression
expression += str(num)
print(num)
按下功能仅适用于几个按钮,但它可以工作,因为如果我打印数字,那么它就可以正常工作。但标签的文字没有改变。
创建Label时,将表达式的值设置为空字符串,不能指望用空字符串创建Label后会发生变化。所以最好在创建Label对象之前考虑这些变化
如果您希望标签 link 到一个可变值,您需要使用
StringVar
参数指定一个 textvariable
对象,而不是通过 str
参数指定一个不可变的 text
对象。
expression = StringVar()
sum_label = Label(root, textvariable=expression, bg='#D3D3D3', padx=113, pady=14)
sum_label.place(x=20, y=10)
#Numbers
def press(num):
global expression
expression.set(expression.get() + str(num))
print(num)