有没有一种有效的方法来判断是否在Tkinter文本小部件中选择了文本?

Bra*_*don 2 python text tkinter selection

描述Tkinter文本小部件的此页面上,指出“选择是一个名为SEL(或“ sel”)的特殊标签,与当前选择相对应。您可以使用常量SEL_FIRST和SEL_LAST来引用选择。如果没有选择,Tkinter会引发TclError异常。

我的问题:除了像下面的代码那样用异常欺骗之外,是否有更有效的方法来判断Text小部件中是否存在选择?

seltext = None
try:
   seltext = txt.get(SEL_FIRST, SEL_LAST)
except TclError:
   pass

if seltext:
   # do something with text
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 5

您可以向窗口小部件询问“ sel”标签包含的文本范围。如果没有选择,则范围的长度为零:

if txt.tag_ranges("sel"):
    print "there is a selection"
else:
    print "there is no selection"
Run Code Online (Sandbox Code Playgroud)