[英]Entry and result box calculator in Tkinter [duplicate]
我是编程语言的初学者,现在我开始学习 python,基本我已经学会了,现在我刚开始尝试用 Tkinter 制作类似简单计算器的东西。 在这里,我试图用“Entry”和“Button”制作一个简单的计算器,但我对期望的结果有困难。 我在我的应用程序中想要的是:如何将第一个和第二个输入字段中的值与相关按钮 (+) 组合或添加,然后在单击按钮后,结果出现在 (+) 按钮旁边的框条目中. 我知道这里有很多类似问题(条目小部件等)的问题,但我真的是一个初学者,通过查看这个论坛中已有的问题并没有得到任何答案。 对不起这个初学者的问题,我请求你的帮助。
import tkinter as tk
from tkinter import *
root = tk.Tk() #main windownya
root.geometry("300x300")
root.title("Little Calc")
#Label
Label(root, text="Input First Number: ").grid(row=0, column=0)
Label(root, text="Input Second Number: ").grid(row=1, column=0)
Label(root, text="Choose Addition: ").grid(row=2, column=0)
Label(root, text="Result: ").grid(row=2, column=1)
#Entry
firstnumb = Entry(textvariable=IntVar()).grid(row=0, column=1)
secnumb = Entry(textvariable=IntVar()).grid(row=1, column=1)
#Plus Button
plus_button = Button(root, text="+", command=lambda: firstnumb.get()+secnumb.get(), width=6, height=1).grid(row=3, column=0)
plusresult = Entry(plus_button).grid(row=3, column=1)
root.mainloop()
当我运行你的代码时,我在这里得到一个 nullPointerException:
plus_button = Button(root, text="+", command=lambda: firstnumb.get()+secnumb.get(), width=6, height=1).grid(row=3, column=0)
为什么会这样? 您在 firstnumb 和 secnumb 上使用 get() 方法,这些变量定义为:
firstnumb = Entry(textvariable=IntVar()).grid(row=0, column=1)
secnumb = Entry(textvariable=IntVar()).grid(row=1, column=1)
这两个变量都有 null 作为值,而不是您想要的条目 object。 发生这种情况是因为您还在变量声明中使用了 grid() 方法,并且此方法返回 null。 分两步执行此操作可以解决您的问题。
firstnumb = Entry(textvariable=IntVar())
firstnumb.grid(row=0, column=1)
secnumb = Entry(textvariable=IntVar())
secnumb.grid(row=1, column=1)
当我现在单击“+”按钮时,不会发生错误,但结果也尚未显示。 我建议你制作一个新的 function 你把这个代码: firstnumb.get()+secnumb.get(), width=6, height=1).grid(row=3, column=0
和代码显示结果。另外,请注意 get() 将返回一个字符串,请确保在添加两个值之前先将其转换为 int 或 float。如果不这样做,10 + 15 将给出 1015。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.