链接
拖放操作链接: https://blog.csdn.net/MrHHHHHH/article/details/134547370
使用拖放打开文件
- 新建一个app项目,在MainWindow里,重新实现
virtual void dragEnterEvent(QDragEnterEvent *event) override;,virtual void dragEnterEvent(QDragEnterEvent *event) override;
// 拖动进入事件
virtual void dragEnterEvent(QDragEnterEvent *event) override;
// 放下事件
virtual void dragEnterEvent(QDragEnterEvent *event) override;
- 实现,需要在.cpp里添加以下头文件
#include <QDragEnterEvent>
#include <QMimeData>
#include <QDropEvent>
#include <QFile>
#include <QTextStream>
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
// 数据中是否包含URL
if(event->mimeData()->hasUrls())
{
// 接收动作
event->acceptProposedAction();
}else {
// 忽略
event->ignore();
}
}
void MainWindow::dropEvent(QDropEvent *event)
{
// 获取MIME数据
const QMimeData* pMD = event->mimeData();
if(pMD->hasUrls())
{
// 获取URL列表
QList<QUrl> listUrls = pMD->urls();
QString fileNmae = listUrls.at(0).toLocalFile();
if(!fileNmae.isEmpty())
{
// 读取数据
QFile file(fileNmae);
if(file.open(QIODevice::ReadOnly)){
QTextStream in(&file)

文章详细介绍了如何在C++中实现拖放功能,涉及QDragEnterEvent、QMimeData和QDropEvent等技术,展示了如何在MainWindow中处理图片拖放事件,以及如何自定义MIME类型和控制拖放行为。
1586

被折叠的 条评论
为什么被折叠?



