tkinter下拉多选框
时间: 2024-09-30 12:12:45 浏览: 50
tkinter自定义多选下拉列表框(带滚动条,全选)
Tkinter是一个Python内置的图形用户界面库,它允许开发者创建GUI应用程序。在Tkinter中,如果你需要创建一个下拉列表,让用户可以选择多个选项,可以使用`ttk.Combobox`或者`OptionMenu`结合`Radiobutton`来实现一个多选下拉框。
`ttk.Combobox`通常用于单选,而`OptionMenu`则是创建一个多选菜单的基础,你可以通过设置其`multiple=True`参数使其变为多选。例如:
```python
from tkinter import *
from tkinter.ttk import Combobox
root = Tk()
cb = Combobox(root, values=['Option1', 'Option2', 'Option3'], state='readonly', multiple=True)
cb.pack()
root.mainloop()
```
在这个例子中,`values`参数是下拉框的选项列表,`state='readonly'`表示只读模式,不允许用户输入新值。
如果你想让每个选项独立选择或取消选择,可以配合使用`Radiobutton`:
```python
import tkinter as tk
from tkinter import ttk
def toggle_selection(option):
if option.cget('relief') == 'sunken':
option.config(relief='raised')
else:
option.config(relief='sunken')
root = tk.Tk()
options = ['Option1', 'Option2', 'Option3']
var = tk.StringVar()
for i, option in enumerate(options):
radio_button = ttk.Radiobutton(root, text=option, variable=var, value=option, command=lambda o=option: toggle_selection(radio_button))
radio_button.grid(row=i, column=0)
combobox = ttk.Combobox(root, textvariable=var, values=options, state='readonly', width=20, height=5, selectmode=tk.MULTIPLE)
combobox.grid(row=len(options), column=0)
root.mainloop()
```
这里,` Radiobutton`的`value`属性设置为下拉框的选项值,当用户点击`Radiobutton`时,会切换其状态并更新对应的`Combobox`内容。
阅读全文