tkinter 下拉框多选
时间: 2023-06-23 16:31:42 浏览: 71
在 tkinter 中,OptionMenu 控件只支持单选,不能直接实现下拉框多选。不过,你可以借助 Listbox、Scrollbar 和 Button 等控件来实现类似下拉框多选的功能。以下是一个简单的示例代码:
```python
import tkinter as tk
root = tk.Tk()
# 定义选项列表
options = ['选项1', '选项2', '选项3', '选项4', '选项5']
# 创建 Listbox 和 Scrollbar 控件
listbox = tk.Listbox(root, selectmode=tk.MULTIPLE)
scrollbar = tk.Scrollbar(root, orient=tk.VERTICAL, command=listbox.yview)
listbox.config(yscrollcommand=scrollbar.set)
# 将选项添加到 Listbox 中
for option in options:
listbox.insert(tk.END, option)
# 定义“确定”按钮的回调函数
def print_selection():
selection = [options[i] for i in listbox.curselection()]
print(f"你选择的选项是:{', '.join(selection)}")
# 创建“确定”按钮
button = tk.Button(root, text="确定", command=print_selection)
# 显示控件
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
button.pack()
root.mainloop()
```
在这个示例中,我们首先定义了一个选项列表 `options`,包含了五个选项。然后,我们创建了一个 Listbox 控件和一个 Scrollbar 控件,并将它们放在一个 Frame 中。我们将选项添加到 Listbox 中,并使用 `selectmode` 属性设置多选模式。接着,我们创建了一个“确定”按钮,并指定了它的回调函数。当用户点击“确定”按钮时,我们通过 `curselection` 方法获取当前选中的选项的下标,然后通过下标在 `options` 列表中查找对应的选项文本。最后,我们将选择结果打印出来。
你可以根据自己的需要修改选项列表、按钮文本、回调函数等。同时,你也可以使用其他布局管理器来调整控件的位置和大小。