1
Python 3.4.3,Windows 10,Tkinter如何啓用組合框中多個值的選擇?
我試圖創建一個組合框,允許從下拉菜單中進行多選。我發現了類似的工作列表框(Python Tkinter multiple selection Listbox),但無法使用組合框工作。
有沒有一種簡單的方法來從組合框的下拉菜單中啓用多個選擇?
Python 3.4.3,Windows 10,Tkinter如何啓用組合框中多個值的選擇?
我試圖創建一個組合框,允許從下拉菜單中進行多選。我發現了類似的工作列表框(Python Tkinter multiple selection Listbox),但無法使用組合框工作。
有沒有一種簡單的方法來從組合框的下拉菜單中啓用多個選擇?
按設計,ttk組合框不支持多選。它旨在允許您從選項列表中選擇一個項目。
如果您需要做出多種選擇,您可以使用帶有相關菜單的menubutton,並在菜單中添加checkbuttons或radiobuttons。
下面是一個例子:
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()