在树视图中上下移动

时间:2016-08-10 21:49:03

标签: python tkinter treeview ttk

我使用Os.walk()在python中填充tkinter树视图但是在填充之后我希望能够使用按钮重新排序树叶。

向上移动树的命令工作正常(我希望能够一次移动多个叶子)

def moveUp():
    leaves = Tree.selection()
    for i in leaves:
        Tree.move(i, Tree.parent(i), Tree.index(i)-1)

但是当我把它颠倒过来走下树时,我得到了一个奇怪的错误

def moveDown():
    leaves = Tree.selection()
    for i in leaves:
        Tree.move(i, Tree.parent(i), Tree.index(i)+1)

我只能向下移动一片叶子,如果我选择一个奇数的叶子,那么最低的一片叶子会向下移动,如果我选择一个偶数片叶子,它们都不会移动。

1 个答案:

答案 0 :(得分:1)

正如注释中所建议的那样,使用reversed()以相反的顺序遍历叶子即可解决此问题。 (将发表评论,但我没有声誉)

def moveDown():
    leaves = Tree.selection()
    for i in reversed(leaves):
        Tree.move(i, Tree.parent(i), Tree.index(i)+1)