본문 바로가기
C++ 200제/코딩 IT 정보

Qt 5 모달 다이얼로그 띄우기 (Modal Dialog, QDialog)

by vicddory 2017. 4. 6.

Ui 창에서 Qt 모달 다이얼로그 (modal dialog) 하나를 띄웁니다. 속성은 당연히 QDialog 입니다.


아래 그림처럼 Dialog를 새로 생성해야 합니다. 아래 그림은 qt 프로젝트에서 버튼이 없는 형태로 생성한 것입니다. 하지만, 다른 분들은 버튼이 있고 없고 크게 신경 안 쓰셔도 됩니다. 그저 다이얼로그만 생성하면 돼요.


QtCreator - QDialog 추가QtCreator - QDialog 추가 [Modal QDialog 예제]


아래는 Qt 모달 다이얼로그 띄우기 소스.


#ifndef DLGCONFIG_H
#define DLGCONFIG_H

#include <QDialog>
#include "ui_dlg_config.h"

class DlgConfig : public QDialog
{
public:
DlgConfig(QWidget *parent = 0);
virtual ~DlgConfig();

private:
Ui::ui_dlg_config_ *ui;
};

#endif


Modal Dialog Cpp 파일

#include "DlgConfig.h"

DlgConfig::DlgConfig(QWidget *parent)
: QDialog(parent)
{
ui = new Ui::ui_dlg_config_;
ui->setupUi(this);
}

DlgConfig::~DlgConfig()
{
// bla bla
}


다이얼로그의 객체를 하나 만든 이후에 setModal 함수로 true를 전달합니다. Qt 모달 다이얼로그 띄우기 완료 과정이죠.


DlgConfig *dlg = new DlgConfig();
dlg->setModal(true);
dlg->show();


근데, 재밌는 건 부모 다이얼로그 내부엔 손을 못대지만 상태창에는 손을 댈수가 있어서 창을 이리저리 움직일 수가 있습니다.


댓글