双击<%= link_to "Sign In", new_user_session_path, class: "button", rel: "modal:open" %>
- 窗口小部件中的单词时,会选择单击的单词。然而,Tkinter对单词的理解对我的用例来说是不切实际的。
Effbot解释了Tkinter认为是一个词而不是如何改变它。是否有可能改变Tkinter对单词的定义,以便将连字符识别为单词的一部分?即我想通过双击选择Text
或--help
或--version
这样的文字。
答案 0 :(得分:0)
在the answer中,curtisk提供了一个指向Bryan Oakley的链接,声明这是不可能的:
您无法修改&#34; wordstart&#34;定义&#34;单词&#34;。
但根据他的回答,我开发了以下方法select_current_word
,周围的代码只是为了说明它的用法。
import Tkinter as tk
class MyText(tk.Text):
def __init__(self, **kw):
tk.Text.__init__(self, **kw)
self.bind('<Double-Button-1>', self.select_current_word)
def select_current_word(self, event):
i0 = self.search(r'[-\w]+', tk.CURRENT+'+1c', backwards=True, regexp=True)
i1 = self.search(r'[^-\w]+', i0, forwards=True, regexp=True)
self.tag_remove(tk.SEL, '1.0', tk.END)
self.tag_add(tk.SEL, i0, i1)
self.update()
return 'break'
if __name__=='__main__':
t = MyText()
t.pack(expand=True, fill=tk.BOTH)
t.insert('1.0', """
Options:
General Options:
-h, --help Print this help text and exit
--version Print program version and exit
-U, --update Update this program to latest version.
""".strip())
t.mainloop()