tkinter画布检查按钮列表不完整

2024-05-19 13:32:13 发布

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

当建立检查按钮列表(3000个案例)时,该列表被切断

以下是一个小样本:

import tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):

        tk.Frame.__init__(self, parent)
        self.canvas = tk.Canvas(self, borderwidth=0, background="#ffffff")
        self.frame = tk.Frame(self.canvas, background="#ffffff")
        self.vsb = tk.Scrollbar(self, orient="vertical", command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=self.vsb.set)

        self.vsb.pack(side="right", fill="y")
        self.canvas.pack(side="left", fill="both", expand=True)
        self.canvas.create_window((4,4), window=self.frame, anchor="nw",
                                  tags="self.frame")

        self.frame.bind("<Configure>", self.onFrameConfigure)

        self.populate()

    def populate(self):

        for row in range(3000):

            t="Example -Checkbutton %s" %row
            button = tk.Checkbutton(self.frame, padx=7, relief=tk.RIDGE, text=t,                                    
                                onvalue=1, offvalue=0,  font='Courier 12')
            button.grid(row=row, column=1, sticky='news')
            
    def onFrameConfigure(self, event):
        self.canvas.configure(scrollregion=self.canvas.bbox("all"))

if __name__ == "__main__":
    root=tk.Tk()
    example = Example(root)
    example.pack(side="top", fill="both", expand=True)
    root.mainloop()

程序的输出:

| |示例清单0


| |示例清单1123


| |示例清单1126


| |示例清单1125



| |示例清单2999

示例检查表1126-2998不显示,示例检查表2999用双线表示

是否有显示完整列表的参数?


Tags: self示例列表exampledefrootfillframe