操作系统:Windows 8.1 Python 3.5
在Tkinter
我找到了大量代码来验证输入框是否为空。但是当我尝试为Text小部件应用相同的方法时,它不起作用。看起来文本小部件有一个\ n字符,这可能是问题所在。
有关如何进行此验证的想法吗?
答案 0 :(得分:0)
Tkinter会在窗口小部件的数据末尾自动添加换行符。要查看窗口小部件是否为空,请将此换行符之前的索引与起始索引进行比较;如果它们相同,则窗口小部件为空。
您可以使用索引"end-1c"
(或"end - 1 char"
)来表示跟踪换行符之前的字符索引。您可以使用文本小部件的compare
方法进行比较。
if text.compare("end-1c", "==", "1.0"):
print("the widget is empty")
假设您的小部件中没有数百兆字节,您还可以获取内容并将长度与零进行比较。这使得窗口小部件中的数据临时副本,在大多数情况下应该是相当无害的。同样,您不希望获得尾随换行符:
if len(text.get("1.0", "end-1c")) == 0:
print("the widget is empty")
答案 1 :(得分:0)
你也可以这样做:
from tkinter import*
root=Tk()
def check():
if str(t1.get(1.0,END)).isspace():
print('The Widget Is Empty')
else:
print('The Widget Is Not Empty')
t1=Text(root)
t1.pack()
b1=Button(root,text='Check The Text Widget Is Empty',command=check)
b1.pack()
mainloop()