【发布时间】:2019-12-23 20:44:37
【问题描述】:
我正在尝试从 Tkinter 的输入框中使用 2 个数字创建一个 if 语句。当我比较这 2 个数字时,我收到一条错误消息,指出我要比较的 2 个变量是函数。是否可以将这些函数变成变量?我试过 var = int(var)、IntVar 和 var = float(var),但都不起作用。
代码
from tkinter import *
root = Tk()
root.title("Who Is More Fat?")
root.geometry("800x600")
# LABELS
font1, font2, font3 = "arial 30 bold", "arial 18 bold", "arial 18"
Label(root, text="Welcome to the Who's More Fat Program", font=font1,
fg="steelblue").place(x=0, y=0)
Label(root, text="Enter first persons name: ", font=font2,
fg="black").place(x=10, y=200)
Label(root, text="Enter first persons weight: ", font=font2,
fg="black").place(x=10, y=240)
Label(root, text="Enter second persons name: ", font=font2,
fg="black").place(x=10, y=300)
Label(root, text="Enter second persons weight: ", font=font2,
fg="black").place(x=10, y=340)
# TEXT BOXES
entry_box1 = Entry(root, width=25, font=font3, bg="white")
entry_box1.place(x=400, y=200)
entry_box2 = Entry(root, width=25, font=font3, bg="white")
entry_box2.place(x=400, y=240)
entry_box3 = Entry(root, width=25, font=font3, bg="white")
entry_box3.place(x=400, y=300)
entry_box4 = Entry(root, width=25, font=font3, bg="white")
entry_box4.place(x=400, y=340)
entry_box2 = float(entry_box2)
entry_box4 = float(entry_box4)
def calc():
if float(entry_box2.get()) > float(entry_box4.get()):
answer.delete(0, END)
answer.insert(0, entry_box1.get() + " is the Fattest")
else:
answer.delete(0, END)
answer.insert(0, entry_box3.get() + " is the Fattest")
# CALCULATE BUTTON
Button(root, text="Calculate the Fattest!", font=font2, bg="white", command=calc).place(x=5, y=390)
Label(root, text="Answer:", font=font2).place(x=290, y=400)
answer = Entry(root, font=font3, width=25, bg="white")
answer.place(x=400, y=400)
追溯
Traceback (most recent call last):
File "C:\Users\Liam\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in
__call__
return self.func(*args)
File "C:/Users/Liam/PycharmProjects/untitled/window.py", line 39, in calc
if entry_box2.get > entry_box4.get:
TypeError: '>' not supported between instances of 'function' and 'function'
【问题讨论】:
-
在你的代码中,你写了
entry_box2.get(),而回溯说entry_box2.get。 -
完全正确 ^ 您刚刚复制了上一个问题的回溯
-
@LiamWelsh,看起来您正在运行
window.py,但正在编辑fat.py。或者您忘记保存文件。错误信息与您的代码不匹配,这是不可能的 -
哇,我觉得自己像个白痴。但是,Tkinter 窗口现在甚至都不会打开。它只是说该过程已完成。
标签: python python-3.x tkinter python-3.7