python - 更改 tkinter 列表框中项目的顺序

标签 python user-interface listbox widget tkinter

有没有比删除特定键的值,然后重新输入新信息更简单的方法来更改 tkinter 列表框中项目的顺序?

例如,我希望能够重新排列列表框中的项目。如果我想交换两个位置,这就是我所做的。它有效,但我只是想看看是否有更快的方法来做到这一点。

def moveup(self,selection):
    value1 = int(selection[0]) - 1 #value to be moved down one position
    value2 = selection #value to be moved up one position
    nameAbove = self.fileListSorted.get(value1) #name to be moved down
    nameBelow = self.fileListSorted.get(value2) #name to be moved up

    self.fileListSorted.delete(value1,value1)
    self.fileListSorted.insert(value1,nameBelow)
    self.fileListSorted.delete(value2,value2)
    self.fileListSorted.insert(value2,nameAbove)

最佳答案

Is there an easier way to change the order of items in a tkinter listbox than deleting the values for specific key, then re-entering new info?

没有。删除并重新插入是唯一的方法。不过,如果您只想将单个项目向上移动一个项目,则只需一次删除和插入即可完成。

def move_up(self, pos):
    """ Moves the item at position pos up by one """

    if pos == 0:
        return

    text = self.fileListSorted.get(pos)
    self.fileListSorted.delete(pos)
    self.fileListSorted.insert(pos-1, text)

关于python - 更改 tkinter 列表框中项目的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091222/

相关文章:

c# - WPF 将 ListBox 绑定(bind)到枚举,显示描述属性

javascript - 客户端网页抓取

python - 我在更新空间信息和图像时收到状态代码 300

python - 打开网站上的特定页面

ios - Swift:根据行数推送Label下的Objects

java - 有关如何开发 Java 外观的资源

ios - 尝试让 IOS 标准 ui 成为我的语言

python - 对非常大的 numpy 数组按 ID 进行分组的最快方法

c# - ListCheckBox 中 DataTemplate 的 WPF 交互 CallMethodAction 引发异常 "Could not find method on object of type"

C++ Nana 如何从全局列表框 * 指针访问列表框内索引 0 上的按钮?