У меня небольшое графическое приложение с Tkinter. очень просто код получает список опций и показывает их как флажок пользователю и ждет выбора пользователя.
для выполнения своей задачи я помещаю холст и рамку внутри него, а затем связываю полосу прокрутки тоже холстом. Также, поскольку у меня было неизвестное количество флажков, я сначала помещаю их все в метку, а затем помещаю метку в рамку.
все работает и полоса прокрутки тоже.
но есть небольшая проблема, которая заключается в следующем: когда я открываю окна, у меня есть список в форме, но при прокрутке они имеют « Lag » и не отображаются в моей форме, НО они отображаются как я наведите мышь на область. (Как классические заморозки окон).
Код:
class StartPage(tk.Frame):
testListOut = []
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.testList = []
self.canvas = tk.Canvas(self, borderwidth=2, relief="sunken")
self.frame = tk.Frame(self.canvas)
self.scrollbar = tk.Scrollbar(self.canvas, orient="vertical", command=self.canvas.yview)
self.canvas.configure(yscrollcommand=self.scrollbar.set)
self.scrollbar.pack(side="right", fill="y")
self.canvas.pack(side="top", 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.populateCheckBox(lNames)
def populateCheckBox(self ,testList):
self.checks = []
self.vars = []
label = tk.Label(self.frame , width=3, borderwidth="1")
label.pack()
for element in testList:
var = tk.BooleanVar()
var.set(False)
checkbox = tk.Checkbutton(label, relief="flat")
checkbox["text"] = element
checkbox["command"] = lambda: self.handler(testList)
checkbox["variable"] = var
checkbox.grid(sticky="w", padx="10", pady="5")
self.checks.append(checkbox)
self.vars.append(var)
def onFrameConfigure(self, event):
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
При открытии страницы
![enter image description here](https://i.stack.imgur.com/N8K6Z.png)
Во время прокрутки
![enter image description here](https://i.stack.imgur.com/cEAET.png)