你好,所以我想弄清楚如何在tkinter中创建一个find函数。我确实弄清楚如何让tkinter突出显示一个特定的搜索文本,但我有一些问题。让我们说他们在第3行有这个词它将突出显示第3行的所有行,因此它将突出显示第1行,第2行以及第3行的所有行。我正试图找出如何让它来选择单词。我也不认为我会以正确的方式强调它,因为他们无法右键单击并复制它,所以如果有人可以帮助我,我真的会感到它!
def find():
findString = simpledialog.askstring("Find...", "Enter text")
textData = notepad.get(0.0, END)
cannot = 'Can not find:'
find = findString
cannotfind = cannot + " " + find
if findString in textData:
notepad.tag_add(findString, 0.0, "END")
notepad.tag_config(findString, background="blue", foreground="white")
else:
messagebox.showinfo('Not Found!', cannotfind)
*编辑我正在考虑而不是使用(0.0,END)找出如何将坐标存储在搜索文本的变量中,这将解决我的所有问题,但我不知道它是否可能。
答案 0 :(得分:0)
如何做到这一点的想法:
首先你将你的句子分开:
my_sentence = "Python is so cool"
my_list = my_sentence.split() # returns ["Python","is","so","cool"]
然后你可以迭代这句话找到想要的词:
word_index = None
for i, word in enumerate(my_list):
if word == my_test_string:
word_index = i
您可以在所需的索引处剪切您的句子并将这些部分重新组合在一起:
string_start = my_list[0:word_index]
string_start = " ".join(string_start)
string_end = my_list[word_index+1:]
string_end = " ".join(string_end)
my_word = my_list[word_index]
然后,您必须重新创建具有所需背景,颜色的标签......