Python 3.x 计算器按钮不起作用,并给出;“未定义”;错误消息

Python 3.x 计算器按钮不起作用,并给出;“未定义”;错误消息,python-3.x,button,tkinter,calculator,Python 3.x,Button,Tkinter,Calculator,我正在通过观看教程编写一个程序,我已经成功地在计算器应用程序内部和计算器屏幕下方正确地排列了按钮。现在,当我尝试单击计算器中的任何按钮时,pycharm中会显示一条错误消息 我尝试了一些替代代码来让按钮工作,而其他类似的问题都有完全不同的按钮代码,所以我无法通过从主题获得帮助来让我的工作。它们是不同的。。但是他们都没有工作 代码: 预期: 单击7时,显示屏应显示7 实际: 按钮不起作用,并在pycharm中显示此错误消息 NameError:未定义名称“btnClick” 您需要定义一个函数并将

我正在通过观看教程编写一个程序,我已经成功地在计算器应用程序内部和计算器屏幕下方正确地排列了按钮。现在,当我尝试单击计算器中的任何按钮时,pycharm中会显示一条错误消息

我尝试了一些替代代码来让按钮工作,而其他类似的问题都有完全不同的按钮代码,所以我无法通过从主题获得帮助来让我的工作。它们是不同的。。但是他们都没有工作

代码:

预期:

单击7时,显示屏应显示7

实际:

按钮不起作用,并在pycharm中显示此错误消息

NameError:未定义名称“btnClick”


您需要定义一个函数并将其分配给按钮:

def btnClick():
    number = btn7.cget('text')
    txtDisplay.insert(string=number, index=0)
并且没有必要添加lambda。你需要做:

btn7.grid(row=1, column=0) 
而不是:

btn7 = Button(cal, padx = 16, pady = 16, bd = 8, fg = "black", bg ="white", font = ('comic sans ms' , 10, 'bold',), text = "7", command = lambda:btnClick(7)).grid(row=1, column 
=0)
因为当你这么做的时候,它会抛出很多错误

完整代码:
欢迎来到StackOverflow

我解决了这个问题,添加了一个名为btnClick的新函数,并传递了数字和某种全局运算符。。谢谢你。为你的问题贴一个答案,48小时后选择它作为正确答案。
btn7 = Button(cal, padx = 16, pady = 16, bd = 8, fg = "black", bg ="white", font = ('comic sans ms' , 10, 'bold',), text = "7", command = lambda:btnClick(7)).grid(row=1, column 
=0)
from tkinter import *

def btnClick():
    number = btn7.cget('text')
    txtDisplay.insert(string=number, index=0)

cal = Tk()

cal.title("Calculator New")

operator = ""

text_Input = StringVar()
txtDisplay = Entry(cal, font=('comic sans ms', 20, 'bold', 'italic'), textvariable = text_Input, bd = 30, insertwidth = 4, bg ="Black", fg = "Red", justify ='right')
txtDisplay.grid(columnspan = 4)

btn7 = Button(cal, padx = 16, pady = 16, bd = 8, fg = "black", bg ="white", font = ('comic sans ms' , 10, 'bold',), text = "7", command=btnClick)
btn7.grid(row=1, column=0)

cal.mainloop()