self.root = root
self.vsb = tk.Scrollbar(self, orient='vertical')
self.text = tk.Text(self, width=40, height=20, yscrollcommand=self.vsb.set)
self.vsb.config(command=self.text.yview)
self.vsb.pack(side='right', fill='y')
self.text.pack(side='left', fill='both', expand=True)
for i in range(1000):
    cb = tk.Checkbutton(self, text='checkbutton #%s' % i)
self.text.window_create('end', window=cb)
self.text.insert('end', '\n')
if __name__ == '__main__':
    root = tk.Tk()
Example(root).pack(side='top', fill='both', expand=True)
root.mainloop()
Variable size list of Checkboxes in Tkinter?