Не впевнений, що ще назвати "активним". Чи можна мати смужку прокрутки після натискання, щоб залишитися "активним"? Ще одне слово після натискання на смугу прокрутки Я хотів би мати можливість перемістити смугу прокрутки клавіатурою (клавіша зі стрілкою вліво / вправо) або мишею. Чи це можливо? Якщо так, що я повинен зробити, щоб це досягти?
Відповіді:
1 для відповіді № 1Технічно це повинно бути можливим, надаючисмужку прокрутки фокус клавіатури, а потім додати деякі спеціальні прив'язки. Це досить незвична справа. Оскільки смужки прокрутки намальовані рідними віджетами в ОС Windows і Mac, ці платформи можуть виявитись неможливими.
Замість того, що ви, ймовірно, хочете зробити, встановлюватиме деякі прив'язки на додаток в цілому або на якийсь виджета, який зазвичай фокусується, наприклад, на холсті або текстовому віджеті. Ваші прив'язки можуть зателефонувати xview
і yview
командує і дає йому аргументи, щоб розповісти йому про те, як прокручувати, що саме робить смужка прокрутки.
1 для відповіді № 2
Ви можете досягти цього, наприклад:
from Tkinter import *
root = Tk()
scrollbar = Scrollbar(root, takefocus = True)
scrollbar.pack( side = RIGHT, fill=Y )
mylist = Listbox(root, yscrollcommand = scrollbar.set )
scrollbar.bind("<Down>", lambda event: mylist.yview_scroll(1, "units"))
scrollbar.bind("<Up>", lambda event: mylist.yview_scroll(-1, "units"))
scrollbar.bind("<Button-1>", lambda event: scrollbar.focus_set())
for line in range(100):
mylist.insert(END, "This is line number " + str(line))
mylist.pack( side = LEFT, fill = BOTH )
scrollbar.config( command = mylist.yview )
mainloop()
The takefocus
прапор дозволяє прокрутці підтримувати фокус. Фокус встановлюється з "<Button-1>"
подія Натискання клавіш також обробляються подіями та викликають бажану поведінку прокрутки на прокручуваному об'єкті.