如何在两个 QListWidget 之间移动项目?

Posted

技术标签:

【中文标题】如何在两个 QListWidget 之间移动项目?【英文标题】:How to move items between two QListWidgets? 【发布时间】:2021-09-14 12:21:38 【问题描述】:

我想创建一个 pyqt5 GUI,用户应该在其中选择左侧想要的变量,它们应该显示在右侧。这是 GUI 的样子:

基本上,我想单击左侧的变量listWidget,它们应该显示在右侧的列表小部件中(chosenitem_list),然后理想情况下从左侧消失listWidget。否则,我可以选择所有所需变量后添加一个按钮, 将它们传输到另一边. 我正在尝试使用下面代码中的item_clicked 方法执行此操作, 但是当我单击它们时没有任何反应所以我被卡住了. 什么我做错了吗?

class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        loadUi('browse.ui',self)
        self.listWidget.clicked.connect(self.item_clicked)

    def item_clicked(self):
        item = QtWidgets.QListWidgetItem() 
        item = self.listWidget.currentItem()
        self.chosenitem_list.addItem(item)

【问题讨论】:

【参考方案1】:

你必须克隆 QListWidgetItem:

def item_clicked(self, index):
    item = self.listWidget.itemFromIndex(index)
    it = item.clone()
    self.chosenitem_list.addItem(it)

【讨论】:

以上是关于如何在两个 QListWidget 之间移动项目?的主要内容,如果未能解决你的问题,请参考以下文章

2 QListWidget之间如何交换多少项目?

在PyQt5中的QTreeWidget和QListWidget之间拖动项目?

将项目从 QTreeWidget 移动到 QListWidget

PyQt:如何获得大部分 QListWidget

PyQt4:将项目从一个 QListWidget 移动到另一个

在单击+拖动时禁用 QListWidget 中的自动选择项目