【发布时间】:2021-07-08 15:25:53
【问题描述】:
我正在尝试在运行代码之前检查是否正确输入了必要的值。为此,我想检查用户是否确实在两个条目小部件中输入了一些内容:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
entry1_val = None
entry2_val = None
def submit_cmd():
global entry1_val, entry2_val
entry1_val = entry1.get()
entry2_val = entry2.get()
label1 = ttk.Label(root, text='Entry 1:')
label1.grid(row=0, column=0)
label2 = ttk.Label(root, text='Entry 2:')
label2.grid(row=1, column=0)
entry1 = ttk.Entry(root)
entry1.grid(row=0, column=1)
entry2 = ttk.Entry(root)
entry2.grid(row=1, column=1)
submit = ttk.Button(root, text='Submit', command=submit_cmd)
submit.grid(row=2, column=1)
# pseudocode for what I want to check
"""
if(entry1_val == something or entry2_val == something):
print("Didn't enter both values")
"""
root.mainloop()
我之前通过一个简单的 if 语句来执行此操作,该语句检查 entry1_val 和 entry2_val 是否已从 None 对象更新。像这样:
if(entry1_val != None and entry2_val != None):
print('Both values good')
elif(entry2_val == None):
print("Didn't enter 1st value")
但是,由于submit_cmd 会同时更新entry1_val 和entry2_val,即使用户仅在其中一个条目小部件中输入了值,这两个值也会从None 更新。
我想知道两件事:
- 在空条目小部件上调用
.get()时返回的内容 - 有没有更好的方法来检查输入小部件中是否正确输入了某些内容?
【问题讨论】:
-
''一个空白字符串。当然,你可以追踪它。可以参考这个stackoverflow.com/questions/68251222/… -
谢谢@Sujay,我以为我已经尝试过了,但显然我没有正确尝试,我现在觉得有点傻。空白字符串非常适合我尝试做的事情。
-
下次小贴士:尝试使用:
print(repr(entry1_val))