问题描述
我正在尝试在我的项目中实现一个QListWidget,它可以通过拖放来移动元素
我尝试以最简单的方式将其集成到项目中,但没有成功,而在外面,我则没有问题。
编辑:问题似乎出在realsense库中,没有它,DAD可以工作
这是它的实现:
priorityContainer.py:
class priorityContainer(QListWidget):
def __init__(self):
super().__init__()
self.setIconSize(QSize(124,124))
self.setDragDropMode(QAbstractItemView.InternalMove)
self.setDefaultDropAction(Qt.MoveAction)
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
self.setAcceptDrops(True)
self.setDragEnabled(True)
for i in range(5):
QListWidgetItem( 'Item '+str(i),self)
main_interface.py:
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import *
import traceback,sys,os
import pyrealsense2 as rs
from ressource.interface import priorityContainer
class UI_main(QMainWindow):
def __init__(self):
super(UI_main,self).__init__()
self.setupUi()
self.show()
def setupUi(self):
self.centralwidget = QWidget(self)
self.mainVcontainer = QVBoxLayout(self.centralwidget)
self.listWidget = priorityContainer.priorityContainer()
self.mainVcontainer.addWidget(self.listWidget)
self.setCentralWidget(self.centralwidget)
def root_path(self):
return os.path.abspath(os.sep)
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = UI_main()
sys.exit(app.exec_())
解决方法
我通过在导入pyrealsense2库的任何其他导入之前添加以下行来解决我的问题:
import sys
sys.coinit_flags = 2
import pythoncom
参考修正:https://github.com/IntelRealSense/librealsense/issues/6174