I've already tried creating a scrollable canvas and making the widgets it's children. It doesn seem to work. Here's the code I'm working with:
#CALENDAR
##Setup
container = Frame(root)
container.pack(fill=X)
scrollable_canvas = Canvas(container)
scrollbar = Scrollbar(container)
scrollbar.pack( side = RIGHT, fill = Y)
scrollbar.config(command = scrollable_canvas.yview)
scrollable_canvas.config(yscrollcommand=scrollbar.set)
scrollable_canvas.pack(fill=X)
##Class
class Event:
def __init__(self, master, date, name, start, end, desc):
self.button = Button(master, text='{}\n{}-{}'.format(name,start,end),command=lambda:self.description(desc))
self.date = date
def current(self):
pass
def description(self, desc):
top = Toplevel()
top.title("Description:")
label = Label(top, text = desc)
button = Button(top, text = "Exit",command = top.destroy)
label.pack()
button.pack()
top.mainloop()
def place(self):
self.button.pack(fill=X)
for i in range(100):
Event(container, today, 'IA{}'.format(i), '14:00', '17:30', 'Wegwerqwqrgwrqethq34t32tretr3wrer\nweqre wqewrwer2er\newrqewrewreregr q3e2ergwe efer\nrweffeqfwrbfrweqfwwrfewfbd\nhgdfhhfdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\n\n\n\n\n\\n\n\n?').place()
As you can see if you were to run it, all the buttons do pop up and so does the scrollbar, yet the scrollbar has no effect on the buttons.