Если вы хотите знать, когда прокручиваемый виджет прокручивается к краю, самое простое решение - вызвать пользовательскую команду, а не вызывать метод set
соответствующей полосы прокрутки.Эта команда может сама вызывать метод set
, а затем делать все, что вы хотите, чтобы она делала.
Эта команда будет передавать два параметра, которые представляют диапазон области просмотра в прокручиваемом виджете.Числа являются числами с плавающей точкой от 0 до 1, хотя они передаются как строки, а не как числа с плавающей точкой.Первое число представляет первую видимую часть виджета, а второе число представляет последнюю часть видимого виджета.
Например, обычно вы делаете что-то вроде этого, чтобы соединить холст и полосу прокрутки вместе:
canvas = tk.Canvas(...)
scrollbar = tk.Scrollbar(..., command=canvas.xview)
canvas.configure(xscrollcommand=scrollbar.set)
Вместо этого создайте собственную команду, которая вызывает метод scrollbar.set
, а затем делает все, что угодноиначе вы хотите это сделать.Это будет выглядеть примерно так:
def handle_scroll(x0, x1):
hsb.set(x0, x1)
if float(x1) > .9:
...
canvas = tk.Canvas(...)
scrollbar = tk.Scrollbar(..., command=canvas.xview)
canvas.configure(xscrollcommand=handle_scroll)