如何将按钮输入为整数

How can I make a button input as Integer

我刚开始使用 python,几乎没有实际的编程背景。作为大多数新手,我正在编写一个计算器。我有一些按钮可以将我的号码写入标签。如果我将 StringVar 中的 textvariable 设置为以下代码片段,则效果很好:

numbers = StringVar()
display = Label(root, font = "Arial 20", textvariable = numbers, relief = RIDGE, anchor = E)

但是当我将其设置为 IntVar 时,它不再起作用了。我似乎无法解决我的问题。这是我的更多代码,用于阐明我在做什么(错误?)。

numbers = IntVar()
display = Label(root, font = "Arial 20", textvariable = numbers, relief = RIDGE, anchor = E)
display.place(x=1, y=1, width=212,height=47


def display_input (inputValue):
    CurrentInput = numbers.get()
    numbers.set(CurrentInput + inputValue)


btn1 = Button(root, text = '1', bd = '1', bg = 'lightsteelblue', relief = RAISED, command = lambda: display_input('1'))
btn1.place(x=1, y=96, width=71,height=47) 

此处您使用字符串 (str) 而不是整数 (int) 调用 display_input 函数:

# '1' with quotes is a string, not an integer
Button(root, ..., command = lambda: display_input('1'))

这会让您尝试使用 intstr 的总和结果来更新 IntVar,这是不受支持的:

>>> 0 + '1'
TypeError: unsupported operand type(s) for +: 'int' and 'str'

command 替换为 display_input(1)(此处 1int)应该可以解决您的问题。