首页 > 其他分享 >Tkinter实现模糊查询

Tkinter实现模糊查询

时间:2023-03-08 17:59:47浏览次数:40  
标签:Tkinter listbox1 self 模糊 list value 查询 entry select

import tkinter as tk

class Test():
	def __init__(self):
		self.root = tk.Tk()
		
		self.entry_value = tk.StringVar()
		self.entry1 = tk.Entry(self.root,textvariable = self.entry_value)
		
		self.listbox1 = tk.Listbox(self.root)
		
		self.base_selection_list = ["A","AB","ABCD","ABCDE","ABCDEF"]
		self.set_list_value(self.base_selection_list)
		
		self.entry1.grid(column=0, row=0, padx=10)
		self.listbox1.grid(column=0, row=1, padx=10)
		
		self.entry1.bind("<KeyRelease>", self.entry_change)
		self.entry1.bind("<Button-3>", self.hide_list)
		
		self.listbox1.bind("<<ListboxSelect>>", self.list_select)
		
		self.root.mainloop()
	
	#有输入变化的时候,设置下拉列表,并显示列表
	def entry_change(self, event):
		entry_value = self.entry1.get()
		print(entry_value)
		
		self.listbox1.delete(0, self.listbox1.size()-1)
		
		new_select_list = []
		for selection_info in self.base_selection_list:
			if entry_value in selection_info:
				new_select_list.append(selection_info)
				
		self.set_list_value(new_select_list)
		#显示出来
		self.listbox1.grid()
		
	def hide_list(self, event):
		self.listbox1.grid_remove()
	
	#选择完下拉列表后,直接隐藏
	def list_select(self, event):
		index_num = self.listbox1.curselection()[0]
		select_value = self.listbox1.get(index_num)
		self.entry_value.set(select_value)
		
		#隐藏起来
		self.listbox1.grid_remove()
		
	def set_list_value(self, value_list):
		#["A","AB","ABCD","ABCDE","ABCDEF"]
		for item in value_list:
			self.listbox1.insert("end",item)
		
app = Test()

  

标签:Tkinter,listbox1,self,模糊,list,value,查询,entry,select
From: https://www.cnblogs.com/hushaojun/p/17195548.html

相关文章

  • java 列表查询
    最常用的便是for循环查询:for(StudentRecordrecord:records){if(record.getYear()==yearSearch){System.out.println(record.getId()+""+record.g......
  • postgresql中在查询结果中将字符串转换为整形或浮点型
    string转integer string转float select'23.3'::floatasresultinteger转stringselect23::Textasresult ......
  • Hibernate中in查询条件
    1、Hibernate中in查询条件publicList<User>listByNames(List<String>names){ Stringhql="fromUserwherenamein(:names)"; Queryquery=this.sessionFact......
  • eas查询分析器查询6500行后的数据
    分析函数指定行号(rowno),最后按照行号筛选数据即可;脚本中使用了Oracle数据库方言(特有函数),执行SQL时需加上方言标记(/*dialect*/),具体查询脚本请参考下文。--查询前5000行/*di......
  • Tkinter使用教程记录
    简介Tkinter是Python的标准GUI库。Python使用Tkinter可以快速地创建GUI应用程序。当然常用的GUI库还有PyQt5,我们只需要知道这两个常用的即可,如果你真的想学习的话。由......
  • 查询oracle的列信息与字符集
    查询字符集与比较排序规则:selectuserenv('language')fromdual;selectparameter,valuefromnls_database_parameterswhereparameterin('NLS_CHARACTERSET','NLS......
  • 软件工程日报十一——安卓studio的数据查询
    上一篇博客实现了安卓studio内数据的添加,这篇博客来实现数据的查询。mainactivity_main.xml文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android=......
  • 基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真
    1.算法描述       在磁悬浮的许多实际应用中,都要求磁悬浮系统的悬浮气隙有较大的工作范围。但由于磁悬浮力-电流-气隙之间的非线性特性,系统模型开环不稳定。至少需......
  • K8s 查询手册
    1kubectl命令1.1资源管理方式1.1.1命令式对象管理kubectlrunnginx-pod--image=nginx:1.17.1--port=801.1.2命令式对象配置kubectlcreate/delete-fnginx......
  • 【Mybatis】数据库动态查询
    在工作目录中新建文件夹idea中file→new→project→Maven      pom.xml中dependencies之内的是依靠<?xmlversion="1.0"encoding="UTF-8"?><projectxm......