Вы установили область прокрутки (scrollregion
) равной нулю пикселей в высоту, поэтому tkinter считает, что в вертикальном направлении прокручивать нечего.
Часто сначала выполняется рисование, а затем задаетсяобласть прокрутки, чтобы охватить все, что вы нарисовали.Вы делаете это, получая ограничивающий прямоугольник - самый маленький прямоугольник, который включает в себя все объекты холста - и затем используете его в качестве значения для scrollregion
.
Пример:
canvas = tk.Canvas(...)
<draw a bunch of objects>
canvas.configure(scrollregion=canvas.bbox("all"))
Другой метод заключается в том, чтобы заранее определить, насколько велика виртуальная область рисования.Например, вы установили для холста ширину и высоту 300. Если вы хотите, чтобы фактическая область рисования была в два раза больше видимого размера, вы можете установить scrollregion
в область, в два раза большую.
В этом примере прокручиваемая область начинается с 0,0 (верхний левый угол) и расширяется до 600 600 (нижний правый угол):
canvas = tk.Canvas(..., width=300, height=300)
canvas.configure(scrollregion=(0,0,600,600)