tkinter实现模糊查询下拉框的问题?

胖玻璃球就一个 CSDN会员 胖玻璃球就一个 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

需求:想用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等属性的设置。此外,还通过完整的代码示例展示了如何创建下拉框、设置默认值、获取选中值、插入和删除文本、调整下拉框状态和样式等操作。代码示例涵盖了常见的下拉框应用场景,并附有注释说明,便于读者理解和实践。

bean

python- Tkinter带模糊查询的下拉列表

前段时间接到领导给我的一个运费核算小程序项目的需求,大概的思路给我讲解了一下,并给我一个效果图,那就开始吧,但是在我使用tkinter绘制我们的布局时,怎么搜也没有搜到关于带模糊查询的下拉列表,但是我这还必须用到下拉列表去让用户去根据指定关键字去选择,然后就自己一点点的按照这个思路,将几个控件组合到一起,实现了带模糊拆线呢的下拉列表 首先先来看一下效果图: 这里用到的控件分别是 列表控件Listbox、Entry 文本输入框 思路:首先在外部获取我们的总数居 ,实时获取用户输入的内容模糊查询我们的总数据,

安东尼肉店

Windows下python3安装tkinter的问题及解决方法

主要介绍了Windows下python3安装tkinter问题及解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38731226

python-tkinter--:新增多次添加,下拉框与输入框,并记录内容

python-tkinter-- 新增多次添加,下拉框与输入框,并记录内容 功能需求: 有一个下拉框,点击选择一个后根据内容生成若干个文件选择,然后还可以点击添加按钮,再生成一个下拉框,就可以重复上面的过程了 填完了以后,在点击确定按钮时,取到所有下拉框和对应的文件选择到的路径,然后调用其他方法

龙猫美术的世界

Python tkinter多选下拉框[项目源码]

本文介绍了如何使用Python的tkinter库创建一个支持全选、取消全选和反选功能的多选下拉列表框。作者基于已有的自定义多选下拉列表框代码,增加了滚动条、全选按钮、取消全选按钮和反选按钮等功能,解决了文本过长导致选项显示不全的问题。文章详细说明了如何修改自定义输入框,并提供了完整的代码实现,包括继承标签类、替换标签名以及实现全选、取消全选和反选功能的代码。通过示例代码,读者可以快速掌握如何在自己的项目中实现类似功能。

tt34567
评论
收藏 已收藏
分享
返回顶部
胖玻璃球就一个 CSDN会员
Python 10,217 成员 705 内容