在this page describing the Tkinter text widget上,它表明了这一点 '选择是一个名为SEL(或“sel”)的特殊标签,对应于当前选择。您可以使用常量SEL_FIRST和SEL_LAST来引用选择。如果没有选择,Tkinter会引发一个TclError异常。'
我的问题:是否有更有效的方法来判断文本窗口小部件中是否有选择,除了欺骗异常,如下面的代码?
seltext = None
try:
seltext = txt.get(SEL_FIRST, SEL_LAST)
except TclError:
pass
if seltext:
# do something with text
答案 0 :(得分:4)
您可以向窗口小部件询问“sel”标记所包含的文本范围。如果没有选择,则范围将为零长度:
if txt.tag_ranges("sel"):
print "there is a selection"
else:
print "there is no selection"
答案 1 :(得分:1)
这是检查指定位置是否被选中的方法。
if "sel" in myTextWidget.tag_names(INSERT): #use 'not in' to see if it's not selected
print("INSERT to 'insert+1c' is selected text!");
我不知道他们为什么不让你在那里放第二个索引。我也不知道这对于处理器而言比你的版本更有效,但它似乎比我能说的更加标准。