/ / Python tkinter активна станція скроллер - python, tkinter

Активний стан Python tkinter scroll bar - python, tkinter

Не впевнений, що ще назвати "активним". Чи можна мати смужку прокрутки після натискання, щоб залишитися "активним"? Ще одне слово після натискання на смугу прокрутки Я хотів би мати можливість перемістити смугу прокрутки клавіатурою (клавіша зі стрілкою вліво / вправо) або мишею. Чи це можливо? Якщо так, що я повинен зробити, щоб це досягти?

Відповіді:

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>" подія Натискання клавіш також обробляються подіями та викликають бажану поведінку прокрутки на прокручуваному об'єкті.