python中带有CheckButtons的列表框和Tkin

2024-04-19 23:59:46 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是用Tkinter在列表框中定义滚动条的代码:

import tkinter as tk

root = tk.Tk()

scrollbar = tk.Scrollbar(root)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

listbox = tk.Listbox(root)
listbox.pack()

for i in range(50):
  listbox.insert(tk.END, i)

listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=s.set)

root.mainloop()

我想修改这段代码,使之有一个带有复选按钮的滚动条,我知道我不能用复选按钮填充列表框,因为列表框只能包含文本

^{pr2}$

如何使我的复选按钮“可滚动”?在


Tags: 代码importconfig定义tkinterasroot按钮
1条回答
网友
1楼 · 发布于 2024-04-19 23:59:46

最常见的选择是将checkbutton放入一个框架中,然后将该框架放入画布中,因为画布是可滚动的。有几个例子,包括这个问题:Adding a scrollbar to a group of widgets in Tkinter

在处理一个垂直的窗口小部件堆栈的情况下,一个siple解决方案是在文本小部件中嵌入checkbutton,因为文本小部件同时支持嵌入式小部件和垂直滚动。在

示例:

import tkinter as tk

root = tk.Tk()

scrollbar = tk.Scrollbar(root)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

checklist = tk.Text(root, width=20)
checklist.pack()

vars = []
for i in range(50):
    var = tk.IntVar()
    vars.append(var)
    checkbutton = tk.Checkbutton(checklist, text=i, variable=var)
    checklist.window_create("end", window=checkbutton)
    checklist.insert("end", "\n")

checklist.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=checklist.yview)

# disable the widget so users can't insert text into it
checklist.configure(state="disabled")

root.mainloop()

相关问题 更多 >