情景
大概应用情景为:将一个文件拖入到窗口内,地址栏显示文件路径,文本框显示文件内容。
说明
实现拖拽必须在exec前设置QMineDate,否则不会开始拖拽操作。
实现
from PyQt6.QtCore import *
calss MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
# 启用
self.setAcceptDrops(True)
def dragMoveEvent(self, ev:QDragMoveEvent) -> None:
```鼠标移动```
drag = drag(self)
mime = QMineDate()
drag.setMimeDate(mime)
drag.exec(Qt.DropAction.CopyAction) # PyQt6
def dragEnterEvent(self, ev:QDragEnterEvent) -> None:
```鼠标移入```
if ev.mimeDate().hasUrls():
ev.accept()
else:
ev.ignore()
def gropEvent(self, ev:QDropEvent) -> None:
```拖拽释放```
# 具体实现
self.lineEdit.setText(ev.mimeDate().text()[8:]) # ev.mimeDate().text()内容为file:///...,所以要截掉前面的
self.textEdit.setText(text) # text为自行读取的内容
标签:Python,text,self,PyQt6,drag,ev,拖拽
From: https://www.cnblogs.com/xhltk316/p/17755114.html