我尝试寻找类似的答案,但未找到任何答案。这样吧。
我目前的任务是使用tkinter工具在Python中使用GUI创建一个简单的计算器。
当我遇到一些实现pow(x)和sqrt(x)并使它们正常工作的问题时,我快完成了。
这是我用于操作数按钮的功能:
def press(num):
global expression
expression = expression + str(num)
equation.set(expression)
这对于所有简单的东西(例如“ +”)都可以正常工作:
plus = Button(gui, text=' + ', fg='orange', bg='white', command=lambda: press("+"), height=1, width=7)
但是现在我仍然需要通过从数学导入来添加pow和sqrt并将它们连接到按钮。我尝试使用相同的“ press”功能,但使用sqrt时遇到ValueError。
powx = Button(gui, text=' pow(x) ', fg='orange', bg='white', command=lambda: press("pow("), height=1, width=7)
powx.grid(row=4, column=4)
sqrt = Button(gui, text=' sqrt(x) ', fg='orange', bg='white', command=lambda: press("sqrt("), height=1, width=7)
sqrt.grid(row=5, column=4)
sqrt错误代码: TypeError:“按钮”对象不可调用
等于:
def equalpress():
try:
global expression
total = str(eval(expression))
equation.set(total)
expression = ""
except ZeroDivisionError:
equation.set(" Cant divide through Zero! ")
expression = ""
except SyntaxError:
equation.set(" SyntaxError! ")
expression = ""
我真的很喜欢一些建议。谢谢! GUI
答案 0 :(得分:2)
问题是您在执行以下操作时要替换内置的sqrt()
函数:
sqrt = Button(gui, text=' sqrt(x) ', fg='orange', bg='white', command=lambda: press("sqrt("), height=1, width=7)
sqrt.grid(row=5, column=4)
现在,名称sqrt
是指您的按钮,而不是功能。像使用pow
按钮一样,更改变量名。
sqrtx = Button(gui, text=' sqrt(x) ', fg='orange', bg='white', command=lambda: press("sqrt("), height=1, width=7)
sqrtx.grid(row=5, column=4)