不确定还有什么叫“主动”。滚动条是否可以一旦点击保持“活动”?再一次,当我点击滚动条时,我希望能够使用键盘(左/右箭头键)或鼠标移动滚动条。这可能吗?如果是这样,我该怎么做才能完成它?
答案 0 :(得分:1)
从技术上讲,应该可以通过给滚动条提供键盘焦点,然后添加一些自定义绑定。这是一件相当不寻常的事情。由于滚动条是在Windows和Mac上使用本机小部件绘制的,因此在这些平台上可能无法实现。
您可能想要做的是在整个应用程序上设置一些绑定,或者在通常获得焦点的某种窗口小部件上设置一些绑定,例如画布或文本窗口小部件。你的绑定可以调用xview
和yview
命令并给它参数来告诉它如何滚动,这正是滚动条的作用。
答案 1 :(得分:1)
你可以这样做,例如:
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()
takefocus
标志允许滚动条保持焦点。焦点设置为"<Button-1>"
事件。按键也由事件处理,并在可滚动对象上调用所需的滚动行为。