Qt_5 - 8BitsCoding/RobotMentor GitHub Wiki
다음과 같이 서브클래싱이 가능하다.
// mydialog.h
#pragma once
#include <QtWidgets/qdialog.h>
class MyDialog : public QDialog{
public:
explicit MyDialog(QDialog* parent = nullptr);
};
// mydialog.cpp
#include "mydialog.h"
MyDialog::MyDialog(QDialog* parent):QDialog(parent) {
}
#include <QtCore/QCoreApplication>
#include <QtWidgets/qapplication.h>
#include "mydialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyDialog* dialog = new MyDialog;
dialog->show();
return app.exec();
}
이벤트 처리하기
#pragma once
#include <QtWidgets/qdialog.h>
class MyDialog : public QDialog{
Q_OBJECT
public:
explicit MyDialog(QDialog* parent = nullptr);
void closeEvnet(QCloseEvent* event);
};
#include "mydialog.h"
#include <QtWidgets/qmessagebox.h>
#include <QtGui/qevent.h>
MyDialog::MyDialog(QDialog* parent) : QDialog(parent) {
}
void MyDialog::closeEvnet(QCloseEvent* event) {
QMessageBox::StandardButton yesno = QMessageBox::question(this, "title", "yes or no", QMessageBox::Yes | QMessageBox::No);
if (yesno == QMessageBox::Yes) {
event->accept();
}
else if (yesno == QMessageBox::No) {
event->ignore();
}
}