tk(ttkbootstrap)下拉实现简单模糊查询

时间:2024-10-23 08:39:38
  • import ttkbootstrap as tk
  • from import *
  • base_server_data = ['刘小二', '刘备', '刘邦', '刘秀', '张三', '张三丰', '张X良', '张X友', '德华', '赵四', '赵五']
  • def get_info():
  • """
  • 提交按钮绑定函数
  • :return:
  • """
  • print('点击提交,继续下面逻辑')
  • def set_value_before_choose():
  • """
  • 选择前根据文本框的内容筛选符合条件的数据
  • :return:
  • """
  • print('选择前下拉框的值:', select_text_data.get())
  • global base_server_data
  • new_select_data = []
  • for i in base_server_data:
  • if select_text_data.get() in i: # 关键字在该选项中则追加到新的list中
  • new_select_data.append(i)
  • select_box_obj["value"] = new_select_data # 重新给下拉框赋值
  • """
  • 主题选择 分为light和dark
  • light:cosmo - flatly - journal - litera - lumen - minty - pulse - sandstone - united - yeti
  • dark:cyborg - darkly - solar - superhero
  • """
  • root = (themename='pulse')
  • ('550x200+650+300') # A*B+C+D 四个参数分别代表展示框的长、宽、左边距、上边距
  • ('选择角色') # 弹框标题设置
  • root.wm_attributes('-topmost', 1) # 弹框展示悬浮属性 可设置参数:-disabled(仅展示,不可操作) -toolwindow -topmost(悬浮最上层)
  • (root, text='角色:', font=('微软雅黑', 10)).grid(row=7, column=1, sticky=, padx=40, pady=30)
  • container_obj = ()
  • container_obj.grid(row=7, column=2, sticky=) # 设置容器位置
  • select_text_data = ()
  • select_box_obj = (
  • master=container_obj,
  • # text=,
  • textvariable=select_text_data,
  • font=('微软雅黑', 10),
  • values=base_server_data, # 下拉框的值
  • height=15, # 高度
  • width=30, # 宽度
  • state='normal', # 设置状态 normal(可选可输入)、readonly(只可选)、 disabled
  • cursor='plus', # 鼠标移动时样式 arrow, circle, cross, plus...
  • postcommand=set_value_before_choose # 选择前方法回调
  • )
  • # select_box_obj.current(2) # 设置默认值,根据values里面的列表,默认展示对应索引的值 若是2则展示第三个值
  • select_box_obj.pack(padx=5, side=RIGHT)
  • def submit_result(event):
  • print('当前选择{}'.format(select_box_obj.get()))
  • select_box_obj.bind('<<ComboboxSelected>>', submit_result) # 下拉绑定事件
  • button = (root, text='提 交', width=10)
  • (row=10, column=2, sticky=, pady=40, padx=190)
  • (command=get_info)
  • ()