Browse Source

新增方案

chengxr 1 year ago
parent
commit
1c874df32f

+ 2 - 0
QFD/QFD.pro

@@ -71,6 +71,7 @@ SOURCES += \
     view/ProjectView.cpp \
     view/SettingView.cpp \
     view/UserView.cpp \
+    widgets/AddSchemeWidget.cpp \
     widgets/AppInfoWidget.cpp \
     widgets/ConfigExpertWidget.cpp \
     widgets/CreateProjWidget.cpp \
@@ -97,6 +98,7 @@ HEADERS += \
     view/ProjectView.h \
     view/SettingView.h \
     view/UserView.h \
+    widgets/AddSchemeWidget.h \
     widgets/AppInfoWidget.h \
     widgets/ConfigExpertWidget.h \
     widgets/CreateProjWidget.h \

+ 67 - 0
QFD/widgets/AddSchemeWidget.cpp

@@ -0,0 +1,67 @@
+#include "AddSchemeWidget.h"
+
+#include <Widgets/Button.h>
+#include <Widgets/LineEdit.h>
+
+#include <QBoxLayout>
+#include <QLabel>
+
+AddSchemeWidget::AddSchemeWidget(QWidget *parent) : QDialog(parent)
+{
+    initWindow();
+    initialize();
+    initLayout();
+    connectSignalsAndSlots();
+}
+
+void AddSchemeWidget::clearInputs()
+{
+    m_nameEdit->clear();
+    m_schemeEdit->clear();
+}
+
+void AddSchemeWidget::initWindow()
+{
+    setWindowTitle("新建方案");
+    setModal(true);
+    setWindowFlags(Qt::Dialog);
+    setWindowFlag(Qt::WindowContextHelpButtonHint, false);
+    resize(350, 250);
+}
+
+void AddSchemeWidget::initialize()
+{
+    m_vBoxLayout = new QVBoxLayout(this);
+    m_gridLayout = new QGridLayout();
+    m_nameLabel  = new QLabel("方案名称:", this);
+    m_nameLabel->setFixedHeight(44);
+    m_nameEdit = new LineEdit(this);
+    m_nameEdit->setFixedWidth(250);
+    m_schemeLabel = new QLabel("方案描述:", this);
+    m_schemeLabel->setFixedHeight(35);
+    m_schemeEdit = new TextEdit(this);
+    m_schemeEdit->setFixedWidth(250);
+    m_schemeEdit->setFixedHeight(150);
+    m_hBoxLayout   = new QHBoxLayout();
+    m_confirButton = new PushButton("生成", this);
+}
+
+void AddSchemeWidget::initLayout()
+{
+    m_vBoxLayout->setMargin(15);
+
+    m_vBoxLayout->addLayout(m_gridLayout);
+    m_gridLayout->addWidget(m_nameLabel, 0, 0, 1, 1, Qt::AlignRight);
+    m_gridLayout->addWidget(m_nameEdit, 0, 1, 1, 2, Qt::AlignLeft);
+    m_gridLayout->addWidget(m_schemeLabel, 1, 0, 1, 1, Qt::AlignRight | Qt::AlignTop);
+    m_gridLayout->addWidget(m_schemeEdit, 1, 1, 1, 2, Qt::AlignLeft);
+
+    m_vBoxLayout->addSpacing(20);
+    m_vBoxLayout->addStretch();
+
+    m_vBoxLayout->addLayout(m_hBoxLayout);
+    m_hBoxLayout->addStretch();
+    m_hBoxLayout->addWidget(m_confirButton);
+}
+
+void AddSchemeWidget::connectSignalsAndSlots() { }

+ 45 - 0
QFD/widgets/AddSchemeWidget.h

@@ -0,0 +1,45 @@
+#ifndef ADDSCHEMEWIDGET_H
+#define ADDSCHEMEWIDGET_H
+
+#include <QDialog>
+
+class PushButton;
+class LineEdit;
+class TextEdit;
+
+class QVBoxLayout;
+class QGridLayout;
+class QHBoxLayout;
+
+class QLabel;
+
+class AddSchemeWidget : public QDialog
+{
+    Q_OBJECT
+public:
+    explicit AddSchemeWidget(QWidget *parent = nullptr);
+
+    void clearInputs();
+
+private:
+    void initWindow();
+    void initialize();
+    void initLayout();
+    void connectSignalsAndSlots();
+
+signals:
+
+private:
+    QVBoxLayout *m_vBoxLayout = nullptr;
+
+    QGridLayout *m_gridLayout = nullptr;
+    QLabel *m_nameLabel       = nullptr;
+    LineEdit *m_nameEdit      = nullptr;
+    QLabel *m_schemeLabel     = nullptr;
+    TextEdit *m_schemeEdit    = nullptr;
+
+    QHBoxLayout *m_hBoxLayout  = nullptr;
+    PushButton *m_confirButton = nullptr;
+};
+
+#endif  // ADDSCHEMEWIDGET_H

+ 21 - 3
QFD/widgets/SchemeOptionWidget.cpp

@@ -1,5 +1,7 @@
 #include "SchemeOptionWidget.h"
 
+#include "AddSchemeWidget.h"
+
 #include <Widgets/Button.h>
 #include <Common/Icon.h>
 
@@ -52,8 +54,10 @@ void SchemeOptionWidget::initialize()
     m_listWidget  = new QListWidget(this);
     m_listWidget->setFixedHeight(200);
 
-    m_listWidget->setStyleSheet("QListWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(255, 255, "
-                                "255);alternate-background-color: rgb(244, 244, 255);}");
+    m_addSchemeWidget = new AddSchemeWidget(this);
+
+    setStyleSheet("QListWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(255, 255, "
+                  "255);alternate-background-color: rgb(244, 244, 255);}");
 }
 
 void SchemeOptionWidget::initLayout()
@@ -95,4 +99,18 @@ void SchemeOptionWidget::initLayout()
     m_vBoxLayout->addWidget(m_listWidget);
 }
 
-void SchemeOptionWidget::connectSignalsAndSlots() { }
+void SchemeOptionWidget::connectSignalsAndSlots()
+{
+    connect(m_addButton, &PushButton::clicked, this, &SchemeOptionWidget::slotAddSchemeClicked);
+    connect(m_removeButton, &PushButton::clicked, this, &SchemeOptionWidget::slotRemoveSchemeClicked);
+}
+
+void SchemeOptionWidget::slotAddSchemeClicked()
+{
+    if (m_addSchemeWidget->isVisible() == false) {
+        m_addSchemeWidget->clearInputs();
+        m_addSchemeWidget->show();
+    }
+}
+
+void SchemeOptionWidget::slotRemoveSchemeClicked() { }

+ 8 - 0
QFD/widgets/SchemeOptionWidget.h

@@ -3,6 +3,8 @@
 
 #include <QWidget>
 
+class AddSchemeWidget;
+
 class RadioButton;
 class PushButton;
 
@@ -25,6 +27,10 @@ private:
     void initLayout();
     void connectSignalsAndSlots();
 
+private slots:
+    void slotAddSchemeClicked();
+    void slotRemoveSchemeClicked();
+
 private:
     QVBoxLayout *m_vBoxLayout = nullptr;
 
@@ -49,6 +55,8 @@ private:
 
     QLabel *m_schemeLabel     = nullptr;
     QListWidget *m_listWidget = nullptr;
+
+    AddSchemeWidget *m_addSchemeWidget = nullptr;
 };
 
 #endif  // SCHEMEOPTIONWIDGET_H