python 从条目Tkinter小部件中获取阿拉伯语搜索值

hxzsmxv2  于 12个月前  发布在  Python
关注(0)|答案(3)|浏览(80)

我试图使一个搜索应用程序,使用BeautifulSoup来解析HTML文件中的文本,并从Tkinter条目小部件中获取搜索关键字进行搜索。我使用AwesomeTkinter来正确显示Tkinter条目小部件内的阿拉伯语。文本显示良好,值是正确的,但我没有得到任何结果,而在代码中手动输入相同的值工作正常。有人能帮助我吗?
下面是我使用的代码

def searchFiles():
    global searchFolderPath
    count = 0
    searched_word = searchField.get()
    print(searched_word)
    if not searched_word:
        print(searched_word)
        searchTree.insert(parent='', index='end', iid=count, text="Please enter a search keyword first...")
    else:
        _, _, filenames_search = next(walk(searchFolderPath))
        results = {}
        for file in filenames_search:
            if file.split('.')[1] == 'html':
                soup = bs4.BeautifulSoup(open(f'{searchFolderPath}/{file}', encoding="utf-8"), 'html.parser')
                results = soup.body.find_all(string=re.compile('.*{0}.*'.format(searched_word)), recursive=True)
                if results:
                    searchTree.insert(parent='', index='end', iid=count, text=file)
                    count += 1
        if not results:
            searchTree.insert(parent='', index='end', iid=count, text="No Result")

字符串
这是我用来让阿拉伯字母正确显示的

import tkinter as tk    
import awesometkinter as atk

searchField = tk.Entry(tab3, justify='right', width=50)
searchField.pack()
atk.add_bidi_support(searchField)

gzszwxb4

gzszwxb41#

从条目Tkinter小部件获取值
使用searchField.get()返回条目小部件中的值

z0qdvdin

z0qdvdin2#

为了从Entry对象中检索文本,请尝试插入以下代码片段。
我已经重命名了对象以符合您的代码示例。

def getmyentry( ev ):
    print( var3.get() )

var3 = tk.StringVar()
searchField = tk.Entry(tab3, justify='right', width=50, textvariable = var3) 
searchField.pack()
bound = searchField.bind( "<Return>", getmyentry )

字符串
您现在可以在输入框中输入文本,然后按Return键检索文本

oprakyz7

oprakyz73#

filenames_search = next(walk(searchFolderPath))

results = {""}

for file in filenames_search:

    if file.split('.')[1] == 'html':

        soup = bs4.BeautifulSoup(open(f'{searchFolderPath}/{file}', encoding="utf-8"), 'html.parser')

        results = soup.body.find_all(string=re.compile('.*{0}.*'.format(searched_word)), recursive=True)

        if results:


            searchTree.insert(parent='', index='end', iid=count, text=file)
            

            count += 1

字符串

你只是频繁地输入代码,只是记住导致错误的行,尝试我的代码,我按顺序管理代码!!

相关问题