python - Tkinter:计算
问题描述
我正在 Tkinter 中制作计算器,但遇到了很多麻烦。我收到了我不明白的错误。以下是相关的代码片段:
def op(op):
global operation
operation = op
def calculate(operation):
number =(eval(str(str(num1.get) + " " + operation + " " + str(num2.get))))
messagebox.showinfo("Answer", str(number))
master = Tk()
master.title("")
#Create the first entry and title
num1text = Label(master, text="Number 1")
num1text.grid(row=0, column=1, padx=5)
num1 = Entry(master)
num1.grid(row = 1, column = 1, padx=5, pady=5)
#Create the first entry and title
num2text = Label(master, text="Number 2")
num2text.grid(row=0, column=2, padx=5)
num2 = Entry(master)
num2.grid(row = 1, column = 2, padx=5, pady=5)
#create the four operand buttons
butt1 = Button(text="+", command=lambda: op("+"))
butt1.grid(row=3, column=1, sticky="nesw",)
butt2 = Button(text="-", command=lambda: op("-"))
butt2.grid(row=4, column=1, sticky="nesw")
butt3 = Button(text="*", command=lambda: op("/"))
butt3.grid(row=3, column=2, sticky="nesw")
butt4 = Button(text="/", command=lambda: op("*"))
butt4.grid(row=4, column=2, sticky="nesw")
#create the submit button
submitbutt = Button(text="Submit", command=lambda: calculate(operation))
submitbutt.grid(row=5, column=1, columnspan=2, sticky="nesw")
我尝试了很多方法,有人可以帮我解决这个问题吗?
解决方案
当您尝试读取条目时,您必须使用括号调用 get 方法num1.get()
:
number =(eval(str(str(num1.get()) + " " + operation + " " + str(num2.get()))))
否则它将返回对 get 方法的引用,而不是值。
推荐阅读
- python - 如何在 QLabel 上显示字节数组图像?
- python - 矩阵的对称乘积
- reactjs - 如何处理第一次渲染时状态为空的问题?
- sql - 删除行和引用已删除行的其他行
- r - 在 x 轴上加倍条,同时在 ggplot 中保留 1 个常见图例
- python - 加入 PySpark 数据集中每个月的上个月数据
- superset - 超集显示来自查询的动态内容(降价)
- xaml - 如何在选择时更改 xamarin shell 中 flyoutitem 的视觉效果?
- c++ - 有没有办法按照 Arduino IDE 中随机生成的列表的顺序运行函数?
- android - 带有房间和状态处理的 Kotlin Coroutines Flow