如何解决为什么我的 Tkinter 计算器只输出 0?
我一直在尝试使用 Tkinter 模块在 python 中制作一个简单的计算器,它所做的只是显示 0。这是代码:
import tkinter as tk
window = tk.Tk()
calclabel = tk.Label(text = "This is a calculator.\nType yor numbers in the space given below and click on any on the operators to carry out the operation.")
calclabel.pack()
entry1 = tk.Entry()
entry1.pack()
entry2 = tk.Entry()
entry2.pack()
a = int()
b = int()
entry1.get = a
entry2.get = b
def addcommand () :
addlabel = tk.Label(text = a+b)
addlabel.pack()
def subcommand () :
sublabel = tk.Label(text = a-b)
sublabel.pack()
def multicommand () :
multilabel = tk.Label(text = a*b)
multilabel.pack()
def divicommand () :
divilabel = tk.Label(text = a/b)
divilabel.pack()
add = tk.Button(text = "Add",command = addcommand,master = window)
add.pack()
sub = tk.Button(text = "Substract",command = subcommand,master = window)
sub.pack()
mul = tk.Button(text = "Multiply",command = multicommand,master = window)
mul.pack()
div = tk.Button(text = "Divide",command = divicommand,master = window)
div.pack()
任何帮助将不胜感激,因为我认为这是一个逻辑错误,我无法弄清楚。
解决方法
看来你做错了。
每次执行任何 command
时,都应该从 entry
中获取值,然后进行计算。
如下图
def addcommand () :
a = int(entry1.get()) # get the value from entry1 and cast it to integer
b = int(entry2.get()) # get the value from entry1 and cast it to integer
addlabel = tk.Label(text = a+b) # do the calculation
addlabel.pack()
您可以在转换过程中使用 try except
块来处理 exception
。
你可以这样做
import tkinter as tk
window = tk.Tk()
calclabel = tk.Label(text = "This is a calculator.\nType yor numbers in the space given below and click on any on the operators to carry out the operation.")
calclabel.pack()
entry1 = tk.Entry()
entry1.pack()
entry2 = tk.Entry()
entry2.pack()
# a = int()
# b = int()
# entry1.get = a
# entry2.get = b
def addcommand () :
a = int(entry1.get())
b = int(entry2.get())
addlabel = tk.Label(text = a+b)
addlabel.pack()
def subcommand () :
a = int(entry1.get())
b = int(entry2.get())
sublabel = tk.Label(text = a-b)
sublabel.pack()
def multicommand () :
a = int(entry1.get())
b = int(entry2.get())
multilabel = tk.Label(text = a*b)
multilabel.pack()
def divicommand () :
a = int(entry1.get())
b = int(entry2.get())
divilabel = tk.Label(text = a/b)
divilabel.pack()
add = tk.Button(text = "Add",command = addcommand,master = window)
add.pack()
sub = tk.Button(text = "Substract",command = subcommand,master = window)
sub.pack()
mul = tk.Button(text = "Multiply",command = multicommand,master = window)
mul.pack()
div = tk.Button(text = "Divide",command = divicommand,master = window)
div.pack()
tk.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。