【问题标题】:move up and down a treeview上下移动树视图
【发布时间】:2016-08-10 21:49:03
【问题描述】:

我正在使用 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)

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

【问题讨论】:

  • 我怀疑问题是当你向上移动一些东西时,下面所有东西的索引都会改变。尝试以相反的顺序遍历leaves,看看是否有帮助。
  • 如何以相反的顺序遍历树叶?

标签: python tkinter treeview ttk


【解决方案1】:

正如 cmets 中建议的那样,使用 reversed() 以相反的顺序遍历叶子可以解决问题。 (会是评论,但我没有声誉)

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

【讨论】:

  • 无需对此发表评论。如果评论解决方案的用户选择不将其写为答案,那么其他人也可以这样做。尤其是如果其他人像您一样提供代码示例。
猜你喜欢
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多