Tkinter Text 选取文字
Text对象的get( )方法可以取得目前所选的文字,在使用Text文字区域时,如果有选取文字操作发生时,Text对象会将所选文字的起始索引放在SEL_FIRST,结束索引放在SEL_LAST,将SEL_FIRST和SEL_LAST当作get( )的参数,就可以获得目前所选的文字。
示例1
当单击Print selection按钮时,可以在Python Shell窗口列出目前所选的文字。
from tkinter import *
def selectedText():
try:
selText = text.get(SEL_FIRST,SEL_LAST)
print("Select text:",selText)
# print("SEL_FIRST:",type(SEL_FIRST)," SEL_LAST:",SEL_LAST)
except TclError:
print("No text selected")
root = Tk()
root.title("apidemos.com")
root.geometry("300x180")
# 建立Button
btn = Button(root,text="Print selection",command=selectedText)
btn.pack(pady=3)
# 建立Text
text = Text(root)
text.pack(fill=BOTH,expand=True,padx=3,pady=2)
text.insert(END,"Love You Like A Love Song") # 插入文字
root.mainloop()
输出:
在上述第4~9行的selectedText( )方法中,使用try…except,如果有选取文字,会列出所选的文字;
如果没有选取文字就单击Print selection按钮将造成执行第6行get( )方法时产生异常,这时会产生TclError的异常,此时在Python Shell窗口列出“No text selected”。