从工作表中获取数据并写入下拉框中 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) self.material_name11 = ttk.Combobox(self.container_top, values=data_list) # 创建标签 self.label10 = ttk.Label(self.container_top, text="PEGA-料号:") self.label10.grid(row=0, column=0, padx=5, pady=5) # 添加下拉框控件到界面上 self.material_name11.grid(row=0, column=1, padx=5, pady=5) # 为下拉框控件添加绑定事件 def on_material_name_keyrelease(event): # 获取用户输入的内容 user_input = self.material_name.get() # 根据用户输入的内容过滤下拉框的选项 filtered_options = [option for option in data_list if user_input in option] # 更新下拉框的选项 self.material_name.configure(values=filtered_options) # 展开下拉框 self.material_name.event_generate('<Down>') self.material_name11.bind('<KeyRelease>', on_material_name_keyrelease)這個代碼修改不要影響手動輸入内容
时间: 2024-03-10 12:47:56 浏览: 131
vue省市区/县数据js文件(citydata.js)
好的,根据您的要求,我为您修改了代码,使得手动输入内容不会受到影响:
```
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_name11.get()
if not user_input:
# 如果用户没有输入任何内容,则展示所有选项
self.material_name11.configure(values=data_list)
else:
# 根据用户输入的内容过滤下拉框的选项
filtered_options = [option for option in data_list if user_input in option]
if filtered_options:
# 如果有符合条件的选项,则更新下拉框的选项并展开下拉框
self.material_name11.configure(values=filtered_options)
self.material_name11.event_generate('<Down>')
else:
# 如果没有符合条件的选项,则关闭下拉框
self.material_name11.event_generate('<Escape>')
# 创建标签
self.label10 = ttk.Label(self.container_top, text="PEGA-料号:")
self.label10.grid(row=0, column=0, padx=5, pady=5)
# 添加下拉框控件到界面上
self.material_name11 = ttk.Combobox(self.container_top, values=data_list)
self.material_name11.grid(row=0, column=1, padx=5, pady=5)
# 为下拉框控件添加绑定事件
self.material_name11.bind('<KeyRelease>', on_material_name_keyrelease)
```
在修改后的代码中,只有当用户输入内容时才会过滤下拉框的选项,并且不会影响手动输入的内容。如果没有符合条件的选项,则下拉框会关闭。希望这个修改能够满足您的需求!
阅读全文