Python 从'Tkinter.Entry'获取值,并将其内容与另一个值进行比较

Python 从'Tkinter.Entry'获取值,并将其内容与另一个值进行比较,python,tkinter,tkinter-entry,Python,Tkinter,Tkinter Entry,我有\uuu init\uuu函数构造一个Tkinter窗口。窗口内有一个乘法5*10和一个条目框。如果用户将正确答案填入框中,然后按下按钮,则执行结果功能,该功能应使标签显示“right”消息。否则,标签会显示“错误”信息 问题是:即使答案是正确的,标签上也会显示“错误”的信息。如果我在result函数中打印self.content,它会在终端中显示正确的值。但是问题出在result函数的if语句中 from Tkinter import * class prop: def __i

我有
\uuu init\uuu
函数构造一个
Tkinter
窗口。窗口内有一个乘法5*10和一个
条目
框。如果用户将正确答案填入框中,然后按下按钮,则执行
结果
功能,该功能应使标签显示“right”消息。否则,标签会显示“错误”信息

问题是:即使答案是正确的,标签上也会显示“错误”的信息。如果我在
result
函数中打印
self.content
,它会在终端中显示正确的值。但是问题出在
result
函数的
if
语句中

from Tkinter import *

class prop:

    def __init__(self):

        self.root = Tk()
        self.root.geometry("800x600")

        self.x = 5
        self.y = 10

        self.title = Label(self.root, text = "TEST")
        self.title.grid(row=0, column=0, columnspan=6)
        self.title.config(font=("Courier", 30))

        self.labelx = Label(self.root,text=self.x)
        self.labelx.grid(row=2, column=2)
        self.labelx.config(font=("Courier", 30))

        self.epi = Label(self.root,text="X")
        self.epi.grid(row=2, column=3)
        self.epi.config(font=("Courier", 30))

        self.labely = Label(self.root,text=self.y)
        self.labely.grid(row=2, column=4)
        self.labely.config(font=("Courier", 30))

        self.total = Entry(self.root, font = "Courier 25 bold",justify="center",width=3)
        self.total.grid(row=2, column=5, padx=20)

        button = Button(self.root, text="OK", command = self.result)
        button.grid(row=3, column=2)

        self.content = Entry.get(self.total)

        self.root.mainloop()

    def result(self):
        if self.content == (self.x * self.y):
            self.labres = Label(self.root, text="Right")
            self.labres.grid(row=2, column=6)
            self.labres.config(font=("Courier", 30))
        else:
            self.labres = Label(self.root, text="Wrong")
            self.labres.grid(row=2, column=6)
            self.labres.config(font=("Courier", 30))


start = prop()

在输入值之前,您正在读取条目的内容。你应该在点击按钮后阅读内容

此外,您还在
self.content==(self.x*self.y)
中比较字符串和int。您应该使用
int(self.content)==(self.x*self.y)

更新后的结果函数为:

def result(self):
        self.content = Entry.get(self.total)
        if int(self.content) == (self.x * self.y):
            self.labres = Label(self.root, text="Right")
            self.labres.grid(row=2, column=6)
            self.labres.config(font=("Courier", 30))
        else:
            self.labres = Label(self.root, text="Wrong")
            self.labres.grid(row=2, column=6)
            self.labres.config(font=("Courier", 30))

如果我这样做:如果int(self.content)我得到:ValueError:int()的文本无效,基数为10:@Athon请确保
self.content
不为空或不包含任何字母或符号。在
int(self.content)
中使用它之前,您需要验证
self.content
,您能解释一下之前要验证什么吗?