Python tkinter自定义多选下拉列表框
时间: 2023-07-13 09:10:20 浏览: 174
Python 窗体(tkinter)下拉列表框(Combobox)实例
Python tkinter中没有原生的多选下拉列表框,但可以通过一些技巧来实现自定义的多选下拉列表框。下面是一个示例代码,演示如何自定义一个多选下拉列表框:
```python
from tkinter import *
from tkinter.ttk import *
class MultiListbox(Frame):
def __init__(self, master, data):
super().__init__(master)
self.grid(sticky=N+S+E+W)
self.create_widgets()
self.fill_data(data)
def create_widgets(self):
self.listbox = Listbox(self, selectmode=MULTIPLE)
self.listbox.grid(row=0, column=0, sticky=N+S+E+W)
self.scrollbar = Scrollbar(self, orient=VERTICAL, command=self.listbox.yview)
self.scrollbar.grid(row=0, column=1, sticky=N+S)
self.listbox.config(yscrollcommand=self.scrollbar.set)
self.button = Button(self, text="选择", command=self.get_selection)
self.button.grid(row=1, column=0, sticky=E)
def fill_data(self, data):
for item in data:
self.listbox.insert(END, item)
def get_selection(self):
selection = self.listbox.curselection()
selected_items = [self.listbox.get(i) for i in selection]
print(selected_items)
root = Tk()
data = ['选项1', '选项2', '选项3', '选项4', '选项5']
app = MultiListbox(root, data)
app.mainloop()
```
运行上面的代码,会弹出一个窗口,其中包含一个多选下拉列表框和一个选择按钮。用户可以选择列表框中的一个或多个选项,然后点击选择按钮,程序会输出用户选择的选项。
阅读全文