在2 listwidget pyqt5之间拖放

问题描述

请帮我弄清楚。我只是无法解决这个问题。显示一个示例,以便当我将一条线从一个listwidget移到另一个listwidget时,我得到了该线(该行的文本)。

    import sys
    from PyQt5.QtWidgets import QApplication,QWidget,QListWidget


class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 drag and drop'
        self.left = 500
        self.top = 400
        self.width =500
        self.height = 650
        self.initUI()

    def initUI(self):
        self.setwindowTitle(self.title)
        self.setGeometry(self.left,self.top,self.width,self.height)

        listwidget = CustomList(self)
        listwidget.move(130,15)
        listwidget.addItem("str")

        listwidget2 = CustomList(self)
        listwidget2.move(330,315)

        self.show()


class CustomList(QListWidget):

    def __init__(self,parent):
        super().__init__(parent)
        self.setAcceptDrops(True)
        self.setDragEnabled(True)
    def mimeTypes(self):
        mimetypes = super().mimeTypes()
        mimetypes.append('text/plain')
        return mimetypes

    def dropMimeData(self,index,data,action):
        if self.SelectItems:
            print(self.SelectItems)
        if data.hasText():
            print(data.text())
            self.addItem(data.text())
            return True
        else:
            return super().dropMimeData(index,action)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

我的代码不起作用

我找到了带有editBox和button的示例。但是看起来listwidget的实现方式有所不同

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)