欢迎访问宙启技术站
智能推送

tkinter.ttk中绘制多选列表控件

发布时间:2023-12-25 00:50:31

在tkinter.ttk模块中,可以使用Checkbutton或Listbox等控件来实现多选列表。

下面是一个使用Checkbutton控件实现多选列表的例子:

import tkinter as tk
from tkinter import ttk

def get_selected_items():
    selected_items = []
    for i, var in enumerate(vars):
        if var.get():
            selected_items.append(items[i])
    print("Selected items:", selected_items)

root = tk.Tk()

items = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]
vars = []
for item in items:
    var = tk.IntVar()
    vars.append(var)
    checkbutton = ttk.Checkbutton(root, text=item, variable=var)
    checkbutton.pack(anchor="w")

button = ttk.Button(root, text="Get Selected Items", command=get_selected_items)
button.pack()

root.mainloop()

在以上代码中,我们创建了一个包含5个选项的多选列表。首先,我们创建了一个items列表,其中包含了需要显示的每个选项。然后,我们使用IntVar()函数创建了一个变量(var),用于存储每个选项是否被选中的状态。将每个var对象添加到vars列表中。接下来,使用ttk.Checkbutton函数创建了一个Checkbutton控件,并将var变量和选项文本传递给该控件。通过逐一遍历vars列表,我们可以获取每个选项的状态。

最后,我们创建了一个按钮,当点击该按钮时,调用get_selected_items()函数。该函数会遍历vars列表,并将被选中的选项添加到selected_items列表中。然后,打印出选中的选项。

通过运行以上代码,我们可以在窗口中看到一个多选列表。当用户选择了一些选项后,点击"Get Selected Items"按钮,就可以在控制台上看到被选中的选项。

另外,我们也可以使用Listbox控件来实现多选列表。以下是一个使用Listbox控件的例子:

import tkinter as tk
from tkinter import ttk

def get_selected_items():
    selected_items = []
    for item in listbox.curselection():
        selected_items.append(items[item])
    print("Selected items:", selected_items)

root = tk.Tk()
root.geometry("200x300")

items = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]

listbox = tk.Listbox(root, selectmode="multiple")
listbox.pack(fill="both", expand=True)

for item in items:
    listbox.insert("end", item)

button = ttk.Button(root, text="Get Selected Items", command=get_selected_items)
button.pack()

root.mainloop()

在以上代码中,我们创建了一个包含5个选项的Listbox控件。首先,我们使用tk.Listbox函数创建了一个Listbox控件,并设置selectmode参数为"multiple",以便可以选择多个选项。然后,使用listbox.insert("end", item)将每个选项添加到Listbox控件中。

接下来,我们创建了一个按钮,当点击该按钮时,调用get_selected_items()函数。该函数通过listbox.curselection()方法获取被选中的选项的索引,并根据索引获取相应的选项文本。

运行以上代码,我们可以看到一个带有可供选择的选项的Listbox控件。当用户选择了一些选项后,点击"Get Selected Items"按钮,就可以在控制台上看到被选中的选项。

以上例子展示了使用Checkbutton和Listbox控件实现多选列表的方法。可以根据实际需要选择其中一种方式来创建多选列表控件。