【发布时间】:2020-04-26 11:34:20
【问题描述】:
我正在处理我的 if/else 语句在满足条件时不起作用的问题。
关键是当输入区域中有多个字符时,我想将我的按钮(“提交”)配置设置为 state=NORMAL。我认为代码是正确的,但问题可能是由代码的静态引起的。在其他情况下,它需要调用命令(单击或其他事件),但这里只是条目内容的更改,我不知道如何编码。
下面是带有按钮的函数和我的 if/else 语句。感谢您的帮助和各种建议。
def sign():
infoLabel = Label(root, text="Enter your name: ").grid(row=0, column=0)
global e
e = Entry(root, width=25)
e.grid(row=0, column=1, columnspan=2)
submit = Button(root, text="Submit", command=signbtn)
submit.grid(row=0, column=3)
if len(e.get()) == 0:
submit.config(state=DISABLED)
else:
submit.config(state=NORMAL)
【问题讨论】:
-
为什么说“if/else 语句不起作用”?怎么了?你期待发生什么?此外,看起来你的 if/else 可以更好地替换为 try/except 块。
-
@Keldron 我认为他们的意思是它总是执行
else的情况,而他们希望运行len(e.get())==0的情况。 -
您有没有想过在
if语句之前检查e.get()返回的内容?如果这是您的实际代码,那么您在创建条目后大约一毫秒调用.get(),这远在用户看到条目小部件之前。 -
@BryanOakley 这正是我的意思。我希望代码检查输入区域中有多少个字符。如果有多个,按钮的状态将变为 NORMAL。我已经意识到代码的结构是错误的,但是找出它是如何工作的似乎是一个挑战。
标签: python if-statement tkinter