-1

晚上好,我正在努力返回输出而不在 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
4

1 回答 1

0

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

当您输入每个数字时,将与 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
于 2020-03-01T20:32:27.800 回答