为什么我的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()

最新更新