从工作表中获取数据并写入下拉框中 data_list = [] for row in range(2, self.data_sheet.max_row + 1): cell_value = self.data_sheet.cell(row=row, column=1).value if cell_value: data_list.append(cell_value) def on_material_name_keyrelease(event): # 获取用户输入的内容 user_input = self.material_name1.get() if not user_input: # 如果用户没有输入任何内容,则展示所有选项 self.material_name1.configure(values=data_list) else: # 根据用户输入的内容过滤下拉框的选项 filtered_options = [option for option in data_list if user_input in option] if filtered_options: # 如果有符合条件的选项,则更新下拉框的选项并展开下拉框 self.material_name1.configure(values=filtered_options) self.material_name1.event_generate('<Down>') else: # 如果没有符合条件的选项,则关闭下拉框 self.material_name1.event_generate('<Escape>') # 创建标签 self.label1 = ttk.Label(self.container_bottom, text="PEGA-料号:") self.label1.grid(row=0, column=0, padx=5, pady=5) # 添加下拉框控件到界面上 self.material_name1 = ttk.Combobox(self.container_bottom, values=data_list) self.material_name1.grid(row=0, column=1, padx=5, pady=5) # 为下拉框控件添加绑定事件 self.material_name1.bind('<KeyRelease>', on_material_name_keyrelease)
时间: 2024-03-28 16:41:17 浏览: 61
基于MFC实现list列表通过下拉框改变数据
这段代码是一个 Python 的 GUI 程序,使用了 tkinter 模块来创建一个下拉框控件,并从一个工作表中获取数据并将其写入下拉框中。具体来说,程序首先遍历工作表中的行,获取第一列的值,将其存储在一个列表中。然后,程序创建一个标签和一个下拉框控件,并将列表中的数据作为选项添加到下拉框中。程序还定义了一个函数 on_material_name_keyrelease,用于处理用户在下拉框中输入的内容。当用户输入内容时,程序会根据输入内容过滤下拉框的选项,并展示符合条件的选项,同时自动展开下拉框。如果没有符合条件的选项,则关闭下拉框。最后,程序将函数 on_material_name_keyrelease 绑定到下拉框的 KeyRelease 事件上,以便在用户输入内容时自动触发该函数处理。
阅读全文