有一段代码可以通过单击下拉按钮(带有工具提示)在列表中执行搜索。它可以工作,但如果您用俄语中的任何单词替换 lst 列表数据,例如lst=['Австралия', 'Австрия', 'Масао', 'Макао'],则不再给出提示。问题是:通过在窗口中用俄语输入文本,是否可以在组合框中接收选择提示?
from tkinter import *
from ttkwidgets.autocomplete import AutocompleteCombobox # pip install ttkwidgets
lst = ['C', 'C++', 'Java', 'Python', 'Perl', 'PHP', 'ASP', 'JS']
# lst = ['Австралия', 'Австрия', 'Масао', 'Макао']
root = Tk()
# creating Combobox
combo_box = AutocompleteCombobox(root, width=30, completevalues=lst)
combo_box.pack()
root.mainloop()
打开类的原始代码
AutocompleteCombobox后,我们成功定位问题所在的方法:问题出在这一行 -
if len(event.keysym) == 1:例子:
西里尔字母未通过测试,自动完成功能不起作用。
为了解决这个问题,我建议重写原来的方法,修正检查:
我只有一个替代选择,而且相当麻烦: