重写
ui界面中添加textEdit部件,点击主窗口,Ctrl + G使textEdit为中心部件
protected:
//拖拽进入事件
void dragEnterEvent(QDragEnterEvent *event);
//放开事件
void dropEvent(QDropEvent *event);
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
if(event->mimeData()->hasUrls())//事件中是否包含Url
event->acceptProposedAction();
else
event->ignore();
}
void MainWindow::dropEvent(QDropEvent *event)
{
//拖拽数据类型为MIME类型
const QMimeData *mimeData = event->mimeData();
if(mimeData->hasUrls()){
QList<QUrl> urlList = mimeData->urls();
//列表中第一条目转化为本地文件路径
QString fileName = urlList.at(0).toLocalFile();
if(!fileName.isEmpty()){
if(fileName.right(4) == ".png"){
QTextImageFormat format;//文本图片格式
format.setName(fileName);//设置图片路径
ui->textEdit->textCursor().insertImage(format);
return;
}
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly)) return;
QTextStream in(&file);
in.setCodec("UTF-8");
ui->textEdit->setText(in.readAll());
file.close();
}
}
}