我正在尝试使用预定义的值填充 Tkinter 组合框以供选择。它正在填充,我可以输入并获得建议。但是,为了做到这一点,我必须绝对知道前几个字符。如果我知道字符串中间或末尾的一些文本,则它没有用,因为组合框只执行'LIKE%' 搜索而不是 '%LIKE%' 搜索。
预期输出(输入“Ceramic”一词会获取包含该字符串的所有名称。注意:这不是 Tkinter 屏幕截图):
这是我迄今为止对代码的改编,如果有人可以建议如何修改AutocompleteCombobox类以进行 LIKE 搜索,那就太好了。
作为示例,以下工作代码具有值 "Cranberry" 和 "Strawberry" ,我的要求是键入 "berry" 并获得两种水果的建议。
import Tkinter
import ttk
import sqlite3
class AutocompleteCombobox(ttk.Combobox):
def set_completion_list(self, completion_list):
"""Use our completion list as our drop down selection menu, arrows move through menu."""
self._completion_list = sorted(completion_list, key=str.lower) # Work with a sorted list
self._hits = []
self._hit_index = 0
self.position = 0
self.bind('<KeyRelease>', self.handle_keyrelease)
self['values'] = self._completion_list # Setup our popup menu
def …Run Code Online (Sandbox Code Playgroud)