Python 如何直接返回输出而不在Tkinter中创建按钮

Python 如何直接返回输出而不在Tkinter中创建按钮,python,python-3.x,tkinter,tkinter-entry,tkinter-menu,Python,Python 3.x,Tkinter,Tkinter Entry,Tkinter Menu,晚上好,我正在努力返回一个输出而不在Tkinker中创建一个按钮。我想根据输入返回“优秀”或“完成”,但只显示输入 下面是我正在努力解决的代码 from tkinter import * root = Tk() num = StringVar() entry1 = Entry(root, textvariable=num).pack() remark = StringVar() entry2 = Entry(root, textvariable=remark).pack() def se

晚上好,我正在努力返回一个输出而不在Tkinker中创建一个按钮。我想根据输入返回“优秀”或“完成”,但只显示输入

下面是我正在努力解决的代码

from tkinter import *

root = Tk()

num = StringVar()
entry1 = Entry(root, textvariable=num).pack()

remark = StringVar()
entry2 = Entry(root, textvariable=remark).pack()

def set_label(name, index, mode):
    return remark.set(num.get())
    if result > 56:
        return "Excellent"
    else:
        return "Done"

num.trace('w', set_label)
num.set('')

root.mainloop

我不确定您想要做什么,但我修改了您的函数以确定num entry是否为“”。如果不是,则将获取的值转换为int并与56进行比较。如果较大,则在备注条目中插入“优秀”,否则在备注条目中插入“完成”

当您输入每个数字时,将与56进行比较,因此第一个数字将始终显示“完成”。一旦超过56位(至少需要2位数),它将继续保持“优秀”

再一次,我尽我所能用提供的逻辑。以下是完整的代码:

from tkinter import *

root = Tk()

num = StringVar()
entry1 = Entry(root, textvariable=num).pack()

remark = StringVar()
entry2 = Entry(root, textvariable=remark).pack()

def set_label(name, index, mode):
    result = num.get()
    if result == '':
        pass # not sure what rule should be here
    else:
        result = int(result)
        if result > 56:
            remark.set("Excellent")
        else:
            remark.set("Done")

num.trace('w', set_label)
num.set('')

root.mainloop

如果结果>56:…
未执行。将输出返回给谁或什么人?无论何时更改
num
,都将由
tkinter
调用
set\u label()
函数,而不管返回什么值。我想你不明白。还要注意的是,
pack()
总是返回
None
,所以这就是你分配给
entry1
entry2
的值。所有操作都使用按钮,但我想删除按钮,这就是我丢失代码的原因。你的代码正是按照我想要的方式工作的。我现在知道我错过了什么。非常感谢你!如果您认为解决方案工作正常,请接受(向上箭头)。非常感谢。