tkinter下拉列表框
时间: 2024-12-25 13:22:16 浏览: 42
### 如何在 Tkinter 中创建和使用下拉列表框 (Combobox)
为了在 Tkinter 中实现下拉列表框功能,应当利用 `ttk` 模块下的 `Combobox` 控件。下面展示了具体方法以及一段完整的代码实例来说明如何操作。
#### 导入必要的模块
首先需要导入 `tkinter` 和其扩展包 `ttk`:
```python
import tkinter as tk
from tkinter import ttk
```
#### 初始化主窗口并设置属性
接着初始化主应用程序窗口,并设定一些基本属性如标题等:
```python
root = tk.Tk()
root.title("Tkinter Combobox Example")
```
#### 添加 Combobox 组件
通过调用 `ttk.Combobox()` 方法向界面中添加一个组合选择框控件,并指定该控件所属的父容器(这里是根窗口)。还可以定义可选项的数据源作为参数传给此函数:
```python
combo_values = ["Option 1", "Option 2", "Option 3"]
combobox = ttk.Combobox(root, values=combo_values)
combobox.current(0) # 设置默认选中的项索引位置
combobox.pack(pady=10)
```
上述代码片段设置了三个可供用户选择的项目,并设定了第一个项目为初始状态时被选中的项[^1]。
#### 获取当前选定值
当程序运行期间想要获取用户所作的选择,则可以通过访问 `get()` 属性完成这一目的:
```python
selected_value = combobox.get()
print(f"The selected value is {selected_value}")
```
这段脚本会在控制台打印出用户最后选取的那个条目名称[^4]。
#### 完整示例代码
这里给出了一段更为完整的例子用于展示整个过程:
```python
import tkinter as tk
from tkinter import ttk
def on_combobox_select(event):
"""处理 Combobox 选择改变事件"""
selection = event.widget.get()
print(f"You have chosen '{selection}'")
if __name__ == "__main__":
root = tk.Tk()
root.title("Tkinter Combobox Demo")
combo_options = ['Red', 'Green', 'Blue']
color_picker = ttk.Combobox(
master=root,
state='readonly',
values=combo_options
)
color_picker.bind('<<ComboboxSelected>>', on_combobox_select)
color_picker.pack(expand=True, fill=tk.X, padx=8, pady=(8, 4))
root.mainloop()
```
在这个案例里,每当用户选择了不同的颜色之后都会触发绑定到 `'<<ComboboxSelected>>'` 上面的方法去执行相应的逻辑处理。
阅读全文