我使用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)
我只能向下移动一片叶子,如果我选择一个奇数的叶子,那么最低的一片叶子会向下移动,如果我选择一个偶数片叶子,它们都不会移动。
答案 0 :(得分:1)
正如注释中所建议的那样,使用reversed()以相反的顺序遍历叶子即可解决此问题。 (将发表评论,但我没有声誉)
def moveDown():
leaves = Tree.selection()
for i in reversed(leaves):
Tree.move(i, Tree.parent(i), Tree.index(i)+1)