Python 如何直接返回输出而不在Tkinter中创建按钮
晚上好,我正在努力返回一个输出而不在Tkinker中创建一个按钮。我想根据输入返回“优秀”或“完成”,但只显示输入 下面是我正在努力解决的代码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
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
的值。所有操作都使用按钮,但我想删除按钮,这就是我丢失代码的原因。你的代码正是按照我想要的方式工作的。我现在知道我错过了什么。非常感谢你!如果您认为解决方案工作正常,请接受(向上箭头)。非常感谢。