问题描述
Python 3.4.3、Windows 10、Tkinter
Python 3.4.3, Windows 10, Tkinter
我正在尝试创建一个组合框,允许从下拉列表中进行多项选择.我发现列表框的类似工作(Python Tkinter 多选列表框),但无法获得它与组合框一起使用.
I am attempting to create a combobox that allows for multiple selections from the dropdown. I have found similar work for listbox (Python Tkinter multiple selection Listbox), but cannot get it work with the combobox.
是否有一种简单的方法可以从组合框的下拉列表中启用多项选择?
Is there a simple way to enable multiple selection from the dropdown of the combobox?
推荐答案
根据设计,ttk 组合框不支持多选.它旨在让您从选项列表中选择一项.
By design the ttk combobox doesn't support multiple selections. It is designed to allow you to pick one item from a list of choices.
如果您需要能够进行多项选择,您可以使用带有关联菜单的菜单按钮,并向菜单添加复选按钮或单选按钮.
If you need to be able to make multiple choices you can use a menubutton with an associated menu, and add checkbuttons or radiobuttons to the menu.
这是一个例子:
import Tkinter as tk
class Example(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
menubutton = tk.Menubutton(self, text="Choose wisely",
indicatoron=True, borderwidth=1, relief="raised")
menu = tk.Menu(menubutton, tearoff=False)
menubutton.configure(menu=menu)
menubutton.pack(padx=10, pady=10)
self.choices = {}
for choice in ("Iron Man", "Superman", "Batman"):
self.choices[choice] = tk.IntVar(value=0)
menu.add_checkbutton(label=choice, variable=self.choices[choice],
onvalue=1, offvalue=0,
command=self.printValues)
def printValues(self):
for name, var in self.choices.items():
print "%s: %s" % (name, var.get())
if __name__ == "__main__":
root = tk.Tk()
Example(root).pack(fill="both", expand=True)
root.mainloop()
这篇关于如何从组合框中启用多选值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!