tkinter combobox 多选
在使用Python的GUI库tkinter进行界面设计时,我们经常会遇到需要让用户从多个选项中选择一个或多个的情况。在这种情况下,我们可以使用tkinter中的Combobox控件来实现多选功能。Combobox是一个下拉框控件,通过设置其属性可以实现单选或多选功能。
创建一个简单的Combobox控件
首先,我们需要导入tkinter库,并创建一个主窗口:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Combobox 多选")
接下来,我们创建一个Combobox控件并设置其为可多选模式:
combo = ttk.Combobox(root, values=["选项1", "选项2", "选项3"], state="readonly", multiple=True)
combo.pack()
在上面的代码中,我们使用ttk.Combobox
创建了一个下拉框控件,并将values
属性设置为选项的列表。同时,我们将state
属性设置为”readonly”,表示只读模式,用户无法手动输入选项。最后,我们设置multiple
属性为True
,表示允许多选。
最后,我们启动主循环:
root.mainloop()
获取用户选择的值
在多选模式下,用户可以通过选择或取消选择下拉框中的选项来进行多选。我们可以通过以下代码来获取用户选择的值:
def get_selected_values():
selected_values = [combo.get()]
print("用户选择的值为:", selected_values)
button = tk.Button(root, text="获取选择的值", command=get_selected_values)
button.pack()
在上面的代码中,我们定义了一个名为get_selected_values
的函数,用于获取用户选择的值。当用户点击按钮时,会调用该函数并输出用户选择的值。
运行示例代码
将以上代码整合在一起,我们可以得到一个功能完整的tkinter窗口程序,用于实现Combobox多选功能。输入以下完整代码并运行:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Combobox 多选")
combo = ttk.Combobox(root, values=["选项1", "选项2", "选项3"], state="readonly", multiple=True)
combo.pack()
def get_selected_values():
selected_values = [combo.get()]
print("用户选择的值为:", selected_values)
button = tk.Button(root, text="获取选择的值", command=get_selected_values)
button.pack()
root.mainloop()
当你运行程序并点击”获取选择的值”按钮时,程序会输出用户选择的值,如下所示:
用户选择的值为: ['选项1', '选项3']
总结
通过本文的介绍,我们学习了如何在tkinter中使用Combobox控件实现多选功能。通过设置Combobox控件的multiple
属性为True,可以让用户在下拉框中选择多个选项。同时,我们也学习了如何获取用户选择的值。