在Windows上,双击“文本”小部件中的单词也会选择连接的标点符号 有没有办法定义你想要选择的字符?
答案 0 :(得分:1)
<强> tcl_wordchars 强>
此变量的值是一个正则表达式,可以设置为控制所考虑的内容&#34; word&#34;字符,例如 通过双击Tk中的文本来选择单词。这是平台 依赖。在Windows上,它默认为\ S,表示除了a之外的任何内容 Unicode空格字符。否则默认为\ w,即任意 Unicode字符(数字,字母或下划线)。
这是Python 3.4的一个例子:
import tkinter
class Creator(object):
def __init__(self):
root = self.root = tkinter.Tk()
# Main Frame
f_main = tkinter.Frame(root, borderwidth=6, relief='flat')
f_main.grid(row=0, column=0, sticky='nsew')
# Text widget and frame
f_txt = tkinter.Frame(f_main, borderwidth=2, relief="sunken")
f_txt.config(width=768, height=768)
f_txt.pack(padx=4, pady=4, side="bottom", fill="both", expand=True)
my_txt = self.text = tkinter.Text(f_txt)
my_txt.config(undo=True, wrap='word')
my_txt.grid(row=0, column=0, sticky="nsew")
my_txt.focus_set()
GUI = Creator()
GUI.root.tk.eval("catch {tcl_endOfWord}")
GUI.root.tk.eval("catch {tcl_startOfPreviousWord}")
GUI.root.tk.eval("set tcl_wordchars {[[:alnum:]']}")
GUI.root.tk.eval("set tcl_nonwordchars {[^[:alnum:]']}")
GUI.root.mainloop()
来自http://wiki.tcl.tk/1655的说明:
...要更改有效的字符,您必须先做 类似的东西:
抓住{tcl_endOfWord}
可以在此处研究正则表达式语法:https://www.tcl.tk/man/tcl8.6/TclCmd/re_syntax.htm