tkinter实现模糊查询下拉框的问题?
需求:想用tkinter的Combobox实现一个支持模糊查询的下拉框,用户在输入内容时能够同步模糊匹配下拉选项
问题描述:现有代码在输入内容后,需要再点击下拉框按钮才能展示选项列表。
试过Listbox组件来组合实现,但有多个frame时该组件显示会有问题,且本就有下拉列表再多个Listbox列表画蛇添足了。
想要结果:用户输入内容时保持下拉列表展开状态,同时下拉列表能根据输入内容实时更新展示模糊匹配的选项(如下图效果)。
有没有兴趣的朋友帮忙修改下代码,谢谢。

import tkinter as tk
from tkinter import ttk
class test_combobox():
def on_key_release(self, event):
# 获取用户输入
input_text = self.combobox.get()
input_text_lower = input_text.lower()
# 根据用户输入更新下拉选项
self.combobox['values'] = [option for option in self.all_options_list
if input_text_lower in option.lower()]
# 如果输入为空,显示所有选项
if not input_text:
self.combobox['values'] = self.all_options_list
self.combobox.event_generate('<Up>')
def win_main(self):
self.all_options_list = ["1苹果", "111桔子", "2香蕉", "3梨子", "4西瓜", "5葡萄", "6猕猴桃", "7菠萝", "8火龙果"]
# 创建主窗口
root = tk.Tk()
root.geometry("300x100")
frame1 = tk.Frame(root)
frame1.pack(pady=5, anchor='w')
# 通道标签
_label = tk.Label(frame1, text="模糊查询下拉框:")
_label.pack(side=tk.LEFT)
# 通道下拉框
self.combobox = ttk.Combobox(frame1, values=self.all_options_list)
self.combobox.pack(side=tk.LEFT)
# 绑定键盘事件
self.combobox.bind('<KeyRelease>', self.on_key_release)
root.mainloop()
if __name__ == '__main__':
tc=test_combobox()
tc.win_main()
相关推荐
Python Tkinter下拉框属性[代码]
本文详细介绍了Python Tkinter中下拉框(Combobox)组件的使用方法及其属性。下拉框组件用于在GUI界面中添加下拉选项,支持文本插入、默认选项设置、值获取等功能。文章提供了详细的参数说明,包括value、current()、get()、insert()、delete()等方法的使用,以及state、width、foreground等属性的设置。此外,还通过完整的代码示例展示了如何创建下拉框、设置默认值、获取选中值、插入和删除文本、调整下拉框状态和样式等操作。代码示例涵盖了常见的下拉框应用场景,并附有注释说明,便于读者理解和实践。
python- Tkinter带模糊查询的下拉列表
前段时间接到领导给我的一个运费核算小程序项目的需求,大概的思路给我讲解了一下,并给我一个效果图,那就开始吧,但是在我使用tkinter绘制我们的布局时,怎么搜也没有搜到关于带模糊查询的下拉列表,但是我这还必须用到下拉列表去让用户去根据指定关键字去选择,然后就自己一点点的按照这个思路,将几个控件组合到一起,实现了带模糊拆线呢的下拉列表 首先先来看一下效果图: 这里用到的控件分别是 列表控件Listbox、Entry 文本输入框 思路:首先在外部获取我们的总数居 ,实时获取用户输入的内容模糊查询我们的总数据,
Windows下python3安装tkinter的问题及解决方法
主要介绍了Windows下python3安装tkinter问题及解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
python-tkinter--:新增多次添加,下拉框与输入框,并记录内容
python-tkinter-- 新增多次添加,下拉框与输入框,并记录内容 功能需求: 有一个下拉框,点击选择一个后根据内容生成若干个文件选择,然后还可以点击添加按钮,再生成一个下拉框,就可以重复上面的过程了 填完了以后,在点击确定按钮时,取到所有下拉框和对应的文件选择到的路径,然后调用其他方法
Python tkinter多选下拉框[项目源码]
本文介绍了如何使用Python的tkinter库创建一个支持全选、取消全选和反选功能的多选下拉列表框。作者基于已有的自定义多选下拉列表框代码,增加了滚动条、全选按钮、取消全选按钮和反选按钮等功能,解决了文本过长导致选项显示不全的问题。文章详细说明了如何修改自定义输入框,并提供了完整的代码实现,包括继承标签类、替换标签名以及实现全选、取消全选和反选功能的代码。通过示例代码,读者可以快速掌握如何在自己的项目中实现类似功能。


