Столкнулся со следующей проблемой… Рисую Canvas и Scrollbar к нему. В Canvas у меня располагается меню Checkbutton.
Задача заключается в том, чтобы при возростании пунктов меню Checkbutton, можно было прокручивать Canvas. Но, почему-то, Scrollbar:
1) остается неактивным (при использовании “bbox”),
2) стает активен, но его прокрутка не производит никаких видимых действий, при фиксированном задании значений для scrollregion
Подскажите, пожалуйста, что я делаю не так? Благодарю.
Код прилагается:
from tkinter import * from tkinter.ttk import * import os root = Tk() directory = os.getcwd() menuDirectory = directory + '\\menu\\' files = sorted(os.listdir(menuDirectory)) f0 = open(menuDirectory + files[0], 'r') app0 = f0.readlines() f0.close() root.title('Program') root.minsize(width=750,height=300) root.maxsize(width=750,height=300) root['borderwidth'] = 15 canvas0 = Canvas(root,width=400,heigh=1600) canvas0['highlightthickness'] = 0 canvas0.pack(side=LEFT,fill=BOTH,expand=True) canvas0.pack_propagate(False) canvas0.configure(scrollregion=canvas0.bbox("all")) scroll0 = Scrollbar(root,orient=VERTICAL) scroll0.config(command=canvas0.yview) canvas0.configure(yscrollcommand=scroll0.set) scroll0.pack(side=RIGHT,fill=Y) i=1 u=2 root.vars={} for q in app0: x0 = q.split('*')[0] root.var=BooleanVar() ch0 = Checkbutton(canvas0,text=x0,variable=root.var,onvalue=True,offvalue=False) ch0.grid(row=u,column=i,ipadx=20,padx=5,pady=10,sticky='nsew') ch0.grid_propagate(False) if i<4: i+=1 else: u+=1 i=1 root.var.set(False) root.vars[q] = root.var root.mainloop()