from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QPixmap from PyQt5.QtCore import Qt class DragAndDropWidget(QWidget): def __init__(self): super().__init__() self.setAcceptDrops(True) # 接收拖放事件 self.label = QLabel(self) # 创建标签 self.label.setAlignment(Qt.AlignCenter) # 居中显示 self.label.setText('Drag and drop image here') # 设置默认文本 self.label.setGeometry(0, 0, 400, 400) # 设置标签大小和位置 def dragEnterEvent(self, event): if event.mimeData().hasImage: # 判断是否为图片 event.accept() # 接受拖放事件 else: event.ignore() def dropEvent(self, event): if event.mimeData().hasImage: image = QPixmap(event.mimeData().imageData()) self.label.setPixmap(image) # 在标签中显示图片 self.label.setText('') # 清除默认文本不显示窗体
时间: 2023-06-19 10:07:25 浏览: 166
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
这是一个使用 PyQt5 实现拖放图片并显示的小窗口程序。程序中使用了 QWidget、QLabel、QPixmap 等 PyQt5 模块,其中:
- QWidget 是 PyQt5 中的基础窗口部件。
- QLabel 是 PyQt5 中的标签部件,可以显示文本和图片等。
- QPixmap 是 PyQt5 中的图片部件,可以加载和显示图片。
程序中的 DragAndDropWidget 类继承自 QWidget,重载了 dragEnterEvent 和 dropEvent 两个方法,实现了拖放事件的处理。在 dropEvent 方法中,将拖放的图片显示在 QLabel 中。
在程序运行时,用户可以将图片拖放到窗口中,程序会自动显示图片。如果拖放的不是图片,程序会忽略该事件。
阅读全文