Qt에서 드래그&드롭 기능을 사용하기 위해서는 우선 AcceptDrops 옵션이 "true"로 설정되어 있어야 한다.
AcceptDrops 옵션이 켜져 있어야 dragEnterEvent, dropEvent 순으로 처리가 가능하다.
AcceptDrops 옵션 설정 방법
더보기
AcceptDrops 옵션 설정 방법은 2가지가 있다.
1. Qt Designer에서 AcceptDrops 옵션 체크하는 방법
-. 드래그&드롭 기능을 처리하기 원하는 위젯의 acceptDrops 옵션을 체크
-. 체크박스에 체크가 되어 있으면 AcceptDrops 옵션이 True, 체크해제 되어 있으면 False
2. API 호출하여 처리하는 방법
-. setAcceptDrops(bool) 함수 호출
드래그 & 드롭 예제 코드 (일부만)
-. 해당 예제에서는 setAcceptDrops() API 함수를 호출하여 다이얼로그에 드래그 & 드롭 기능을 Enable하도록 하였음.
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
setAcceptDrops(true);
}
void Dialog::dragEnterEvent(QDragEnterEvent *e)
{
ui->label_state->setText("drag enter...");
e->accept();
}
void Dialog::dropEvent(QDropEvent *e)
{
ui->label_state->setText("dropped..!");
if (!e->mimeData()->hasUrls())
return;
QList<QUrl> urls = e->mimeData()->urls();
foreach (QUrl url, urls)
{
ui->plainTextEdit->appendPlainText(url.toLocalFile());
}
}
드래그 & 드롭 예제 코드 (전체 소스)
실행 화면
'QT' 카테고리의 다른 글
[ERROR] cannot find -GL 발생 시, 해결 방법 (0) | 2016.02.26 |
---|---|
Drive(Storage) free space link (0) | 2014.01.03 |
Convert from char*(char array) to QString (0) | 2013.11.28 |
Convert from QImage to QPixmap (0) | 2013.11.27 |
QTextEdit의 내용 읽어오기 (0) | 2013.11.13 |