t按下树视图的底部时,如何到达树视图的顶部,反之亦然?

2024-03-28 21:03:51 发布

您现在位置:Python中文网/ 问答频道 /正文

tree = ttk.Treeview(root, selectmode="browse")
tree.pack()

当用户在已经选择最后一个项目的情况下按下向下箭头键时,我需要它选择顶部项目,向上箭头也是如此。谢谢


Tags: 项目用户tree情况root箭头packttk
1条回答
网友
1楼 · 发布于 2024-03-28 21:03:51

您可以bind()函数在TreeView中键入DownUp),这将检查您是否在最后(第一)行并跳到第一(最后)行。它必须移动选择、移动焦点、滚动窗口和阻止事件,以便TreeView不会使用此键移动到下一行(上一行)

import tkinter as tk
from tkinter import ttk

def jump_to_first(event):
    last = tree.get_children()[-1]
    if tree.focus() == last:
        first = tree.get_children()[0]
        tree.selection_set(first) # move selection
        tree.focus(first) # move focus
        tree.see(first) # scroll to show it
        return "break" # don't send event to TreeView

def jump_to_last(event):
    first = tree.get_children()[0]
    if tree.focus() == first:
        last = tree.get_children()[-1]
        tree.selection_set(last) # move selection
        tree.focus(last) # move focus
        tree.see(last) # scroll to show it
        return "break" # don't send event to TreeView

root = tk.Tk()

tree = ttk.Treeview(root, selectmode="browse")
tree.pack()

for x in range(1, 21):
    print(tree.insert('', 'end', text=str(x)))

tree.bind('<Down>', jump_to_first)
tree.bind('<Up>', jump_to_last)

root.mainloop()

相关问题 更多 >