ホームに戻る
Qt(ドラッグアンドドロップ編)
0、はじめに
ファイルのウィンドウへのドラッグアンドドロップを実装します。
ラベルに場所を表示するだけのサンプルを作ります。
1、サンプルコード
まずラベルを貼っておきます。
// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDropEvent>
#include <QMimeData>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void dragEnterEvent(QDragEnterEvent *e);
void dropEvent(QDropEvent *e);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
// mainwindow.h
#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 *e)
{
if(e->mimeData()->hasFormat("text/uri-list"))
{
e->acceptProposedAction();
}
}
void MainWindow::dropEvent(QDropEvent *e)
{
ui->label->setText(e->mimeData()->urls().first().toLocalFile());
}