Здесь приведен фрагмент кода, показывающий создание холста с горизонтальной и вертикальной полосами прокрутки. В этом фрагменте self подразумевается как виджет Frame.
self.canv = tk.Canvas(self, width=600, height=400,
scrollregion=(0, 0, 1200, 800))
self.canv.grid(row=0, column=0)
self.scrollY = tk.Scrollbar(self, orient=tk.VERTICAL,
command=self.canv.yview)
self.scrollY.grid(row=0, column=1, sticky=tk.N+tk.S)
self.scrollX = tk.Scrollbar(self, orient=tk.HORIZONTAL,
command=self.canv.xview)
self.scrollX.grid(row=1, column=0, sticky=tk.E+tk.W)
self.canv['xscrollcommand'] = self.scrollX.set
self.canv['yscrollcommand'] = self.scrollY.set
Примечания:
Связь идет в обе стороны. Опция xscrollcommand холста должна быть связана с методом .set горизонтальной полосы прокрутки, а опция command полосы прокрутки должна быть связана с методом .xview холста. Вертикальная полоса прокрутки и холст должны иметь одинаковые взаимные связи.
Опции sticky в вызовах метода .grid() для полос прокрутки заставляют их растягиваться настолько, чтобы соответствовать соответствующему размеру холста.