pyqt5任意组件的拖拽问题
import cv2
from PyQt5.Qt import *
import sys
import pydicom
from PIL import Image
import os
from PyQt5 import QtCore, QtGui, QtWidgets
from PIL import ImageQt
class Image_label(QLabel):
def __init__(self,):
super().__init__()
self.path_text = r"F:\PycharmWorkPlace\MedicalSystem\testdata\IM62.dcm"
def set_path_text(self,path):
self.path_text = path
def mouseMoveEvent(self, e):
mimeData = QMimeData()
mimeData.setText(self.path_text)
drag = QDrag(self)
drag.setMimeData(mimeData)
drag.setHotSpot(e.pos() - self.rect().topLeft())
drag.exec_(Qt.MoveAction)
import cv2
from PyQt5.Qt import *
import sys
import pydicom
from PIL import Image
import os
from PyQt5 import QtCore, QtGui, QtWidgets
from PIL import ImageQt
class ImageShowPane(QLabel):
content_signal = pyqtSignal(str)
content = None
def __init__(self):
super().__init__()
self.setAcceptDrops(True)
def dragEnterEvent(self, e):
e.accept()
def dropEvent(self, e):
img_path = e.mimeData().text()
self.content = img_path
dcm = pydicom.read_file(img_path)
raw_img = dcm.pixel_array
img = Image.fromarray(raw_img)
img = img.convert("RGB")
img.save("rgb.jpg")
img = ImageQt.toqpixmap(img)
self.setPixmap(QPixmap(img))
self.setScaledContents(True)
def mousePressEvent(self, QMouseEvent):
self.content_signal.emit('rgb.jpg')