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 draw_image(self,img_path):
# img_path = r'D:\MedicalSystem\testdata\IM62.dcm'
# dcm = pydicom.read_file(img_path)
# raw_img = dcm.pixel_array
#
# # 往显示视频的Label里 显示QImage
# img = Image.fromarray(raw_img)
# # img = img.convert("RGB")
# img = img.convert("RGB").save("test1.jpg", format='jpeg') # 复制了三个三通道,三个通道的值相同
#
#
# self.setPixmap(QPixmap("test1.jpg"))
# self.setScaledContents(True)
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
# print(img_path)
dcm = pydicom.read_file(img_path)
raw_img = dcm.pixel_array
# print(raw_img)
# 往显示视频的Label里 显示QImage
img = Image.fromarray(raw_img)
img = img.convert("RGB")
img.save("rgb.jpg")
# print(img.mode)
img = ImageQt.toqpixmap(img)
# print(img)
self.setPixmap(QPixmap(img))
self.setScaledContents(True)
def mousePressEvent(self, QMouseEvent):
self.content_signal.emit('rgb.jpg')
# print(self.content)
版权声明:本文为qq_41375318原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。