在tkinter Python3中创建查找和标记功能。

2024-10-01 17:34:42 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我想知道如何在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)

*我想用edit代替(0.0,END)来计算如何将坐标存储在搜索文本的变量中,这样可以解决我的所有问题,但我不知道是否可能。你知道吗


Tags: 函数文本tkintertag方式find单词end
1条回答
网友
1楼 · 发布于 2024-10-01 17:34:42

如何做到这一点的想法:

首先你要分句:

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]

然后你必须用所需的背景,颜色,重新创建标签。。。你知道吗

相关问题 更多 >

    热门问题