목차
0. DragAndDropTest 생성
이것은 기본이나 패스...
1. QDragDropLabel 추가
아래와 같이 QDragDropLabel을 만든다.
qdragdroplabel.h
#ifndef QDRAGDROPLABEL_H
#define QDRAGDROPLABEL_H
#include <QObject>
#include <QWidget>
#include <QLabel>
#include <QFont>
class QDragDropLabel : public QLabel
{
Q_OBJECT
public:
QDragDropLabel(QWidget *parent=nullptr): QLabel(parent){
QFont font = parent->font();
font.setPixelSize(12);
setFont(font);
}
void dragEnterEvent(QDragEnterEvent *event);
void dragLeaveEvent(QDragLeaveEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dropEvent(QDropEvent *event);
void mousePressEvent(QMouseEvent *ev);
};
#endif // QDRAGDROPLABEL_H
qdragdroplabel.cpp
#include "qdragdroplabel.h"
#include <QDebug>
#include <QDropEvent>
#include <QMimeData>
#include <QApplication>
#include <QStringList>
#include <QDragMoveEvent>
#include <QDragEnterEvent>
void QDragDropLabel::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls()) {
e->acceptProposedAction();
}
}
void QDragDropLabel::dragLeaveEvent(QDragLeaveEvent *e)
{
Q_UNUSED(e);
}
void QDragDropLabel::dragMoveEvent(QDragMoveEvent *e)
{
Q_UNUSED(e);
}
void QDragDropLabel::dropEvent(QDropEvent *e)
{
foreach (const QUrl &url, e->mimeData()->urls()) {
QString fileName = url.toLocalFile();
qDebug() << "Dropped file:" << fileName;
}
}
void QDragDropLabel::mousePressEvent(QMouseEvent *e)
{
Q_UNUSED(e);
}
만든 QDragDropLabel을 만들고 이 Widget을 사용하기 위해 아래와 같이 등록한다.
UI 화면에서 오른쪽 마우스를 클릭하여 "Promoted widgets..."로 들어가서
QDragDropLabel을 추가한다. QLabel을 이것으로 변경하여 사용할 예정이니 Base class name은 QLabel을 선택한다.
2. QDragDropLabel widget 추가
QLabel을 추가 후, 오른쪽 마우스를 클릭하면 아래와 같이 QDragDropLabel을 선택할 수 있다.
이렇게 하면 아래와 같이 QDragDropLabel로 바뀐다.
3. 실행
아래와 같이 실행 후, 파일을 Drag & Drop 하면 메시지를 확인할 수 있다. "+복사" 글자를 다른 문구로 바꾸고 싶은데 거기까지는 안 해봤음.ㅋㅋ
https://github.com/busymankr/DragAndDropTest
'놀기 > Qt' 카테고리의 다른 글
Qt에서 cppcheck 사용하기 (0) | 2022.12.31 |
---|---|
Qt Console Application 종료하기 (0) | 2022.12.30 |
Qt Creator 조금이라도 빠르게 - Updates Check 끄기 (0) | 2022.10.11 |
QCustomPlot를 사용해서 Ping 결과를 그래프로 표시하기 (0) | 2022.08.10 |
QCustomPlot - Qt로 그래프를 그려보자. (0) | 2022.08.03 |
댓글