Python tkinter如何在我创建的Frame上自定义多选下拉列表框
时间: 2024-02-06 22:13:05 浏览: 235
要在Python tkinter中创建自定义的多选下拉列表框,可以使用ttk.Combobox和ttk.Checkbutton。
首先,创建一个Frame并将其放置在主窗口中:
```python
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
frame = ttk.Frame(root)
frame.pack()
```
然后,创建一个ttk.Combobox,将其放置在Frame中,并将其绑定到一个变量中:
```python
combo_var = tk.StringVar()
combo = ttk.Combobox(frame, textvariable=combo_var)
combo.pack()
```
接下来,创建一个ttk.Checkbutton列表,并将其放置在Frame中:
```python
check_var1 = tk.IntVar()
check1 = ttk.Checkbutton(frame, text='Option 1', variable=check_var1)
check1.pack()
check_var2 = tk.IntVar()
check2 = ttk.Checkbutton(frame, text='Option 2', variable=check_var2)
check2.pack()
check_var3 = tk.IntVar()
check3 = ttk.Checkbutton(frame, text='Option 3', variable=check_var3)
check3.pack()
check_var4 = tk.IntVar()
check4 = ttk.Checkbutton(frame, text='Option 4', variable=check_var4)
check4.pack()
```
最后,在ttk.Combobox的下拉列表中添加一个Button,并将其绑定到一个函数中,以获取选定的选项:
```python
def get_selected_options():
selected_options = []
if check_var1.get():
selected_options.append('Option 1')
if check_var2.get():
selected_options.append('Option 2')
if check_var3.get():
selected_options.append('Option 3')
if check_var4.get():
selected_options.append('Option 4')
combo_var.set(', '.join(selected_options))
select_button = ttk.Button(frame, text='Select', command=get_selected_options)
combo['postcommand'] = select_button.pack_forget
```
这将创建一个自定义的多选下拉列表框,并在选定选项时将它们显示在ttk.Combobox中。
阅读全文