From d87fb8e429100246658c624d5fb78ff4b2517e7b Mon Sep 17 00:00:00 2001 From: Krad Date: Thu, 11 Nov 2021 14:10:16 +0800 Subject: [PATCH] GUIFormBaseDialog, a useful base class for form edit --- src/GUIFormBaseDialog.cpp | 41 +++++++++++++++++++++++++++++++++++++++ src/GUIFormBaseDialog.h | 23 ++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/GUIFormBaseDialog.cpp create mode 100644 src/GUIFormBaseDialog.h diff --git a/src/GUIFormBaseDialog.cpp b/src/GUIFormBaseDialog.cpp new file mode 100644 index 0000000..dedbafa --- /dev/null +++ b/src/GUIFormBaseDialog.cpp @@ -0,0 +1,41 @@ +// +// Created by Krad on 2021/11/10. +// + +#include "GUIFormBaseDialog.h" +#include +#include +#include +GUIFormBaseDialog::GUIFormBaseDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { + this->setObjectName("formDialog"); + this->setWindowFlags (Qt :: FramelessWindowHint | Qt :: Dialog); + this->setFixedSize(500,600); + this->formWidget = new QWidget(this); + this->formWidget->setObjectName("formWidget"); + + QVBoxLayout* vLayout = new QVBoxLayout(this); +// vLayout->setContentsMargins(680,100,680,100); + vLayout->addWidget(formWidget); + + QWidget* btnWidget= new QWidget(this); + vLayout->addWidget(btnWidget); + QHBoxLayout* hLayout = new QHBoxLayout(btnWidget); + QPushButton* btnOk= new QPushButton(btnWidget); + btnOk->setText("OK"); + QPushButton* btnCancel = new QPushButton(btnWidget); + btnCancel->setText("Cancel"); + hLayout->addWidget(btnOk); + hLayout->addWidget(btnCancel); + btnOk->setObjectName("btnOK"); + connect(btnOk, &QPushButton::clicked, [t=this](){ + if(t->updateReferenceData()) + t->accept(); + }); + connect(btnCancel, &QPushButton::clicked, [t=this](){ + t->reject(); + }); +} + +GUIFormBaseDialog::~GUIFormBaseDialog() { + +} diff --git a/src/GUIFormBaseDialog.h b/src/GUIFormBaseDialog.h new file mode 100644 index 0000000..67dbab0 --- /dev/null +++ b/src/GUIFormBaseDialog.h @@ -0,0 +1,23 @@ +// +// Created by Krad on 2021/11/10. +// + +#ifndef GUI_GUIFORMBASEDIALOG_H +#define GUI_GUIFORMBASEDIALOG_H + +#include +class GUIFormBaseDialog: public QDialog { +Q_OBJECT +public: + explicit GUIFormBaseDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + ~GUIFormBaseDialog(); + +protected: + virtual bool updateReferenceData(){ + return false; + }; + QWidget* formWidget = nullptr; +}; + + +#endif //GUI_GUIFORMBASEDIALOG_H