tkinter canvas - checkbutton - Liste unvollständig
Verfasst: Dienstag 13. Oktober 2020, 11:59
Hallo,
beim Aufbau einer checkbutton-Liste (3.000 Fälle) wird die Liste abgeschnitten.
Hier ein Beispiel-Programm:
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="Beispiel-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()
Die Ausgabe des Programms:
| | Beispiel-Checkliste 0
----------------------------------------------
.....
| | Beispiel-Checkliste 1123
----------------------------------------------
| | Beispiel-Checkliste 1124
----------------------------------------------
| | Beispiel-Checkliste 1125
=======================
| | Beispiel-Checkliste 2999
Die Beispiel-Checklisten 1126 - 2998 werden nicht angezeigt und Beispiel-Checkliste 2999 durch doppelte Strich gekennzeichnet.
Gibt es einen Parameter, der die Komplettliste anzeigt?
beim Aufbau einer checkbutton-Liste (3.000 Fälle) wird die Liste abgeschnitten.
Hier ein Beispiel-Programm:
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="Beispiel-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()
Die Ausgabe des Programms:
| | Beispiel-Checkliste 0
----------------------------------------------
.....
| | Beispiel-Checkliste 1123
----------------------------------------------
| | Beispiel-Checkliste 1124
----------------------------------------------
| | Beispiel-Checkliste 1125
=======================
| | Beispiel-Checkliste 2999
Die Beispiel-Checklisten 1126 - 2998 werden nicht angezeigt und Beispiel-Checkliste 2999 durch doppelte Strich gekennzeichnet.
Gibt es einen Parameter, der die Komplettliste anzeigt?