头文件:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtGui> //包含GUI界面的相关函数
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
private:
void dragEnterEvent(QDragEnterEvent *event); //拖动
void dropEvent(QDropEvent *event); //放下
};
#endif // MAINWINDOW_H
源文件:
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setAcceptDrops(true);//必须设置为接受拖放
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
if(event->mimeData()->hasFormat("text/plain"))
{
event->acceptProposedAction();
}
// QStringList list = event->mimeData()->formats();//接受所有格式
// for(int i = 0;i < list.size();i++)
// {
// QString text = list.at(i);
// qDebug() << "Formats:" << text;
// }
}
void MainWindow::dropEvent(QDropEvent *event)
{
if(event->mimeData()->hasFormat("text/plain"))
{
event->acceptProposedAction();
QString txt = event->mimeData()->text();
qDebug() << txt;
}
}
设计界面:(QLabel)