Forráskód Böngészése

Project List Details

chengxr 1 éve
szülő
commit
30af4a3dae

+ 1 - 4
QFD/main.cpp

@@ -18,12 +18,9 @@ int main(int argc, char *argv[])
     //    l.show();
 
     QTranslator *translator = new QTranslator();
-    translator->load(":/resource/i18n/qfluentwidgets_zh.qm");
+    translator->load(QLocale::system(), ":/resource/i18n/qfluentwidgets_zh.qm");
     QCoreApplication::installTranslator(translator);
 
-    QString ok = QString(QObject::tr("OK"));
-    qDebug() << __FUNCTION__ << __LINE__ << ok;
-
     MainWindow m;
     m.show();
 

+ 2 - 1
QFD/view/ExpertManageView.cpp

@@ -1,6 +1,7 @@
 #include "ExpertManageView.h"
 
 #include "QFDIcon.h"
+#include "MainWindow.h"
 
 #include "ExpertInfoWidget.h"
 #include "ExpertListWidget.h"
@@ -101,7 +102,7 @@ void ExpertManageView::slotDetailClicked()
 
 void ExpertManageView::slotDeleteClicked()
 {
-    MessageBox *m = new MessageBox("删除专家信息", "删除后不可恢复,确认删除?", this);
+    MessageBox *m = new MessageBox("删除专家信息", "删除后不可恢复,确认删除?", topLevelWidget());
     m->exec();
 }
 

+ 1 - 1
QFD/view/ProjectView.cpp

@@ -32,7 +32,7 @@ void ProjectView::initLayout()
     m_hBoxLayout->addWidget(m_projDetailWidget);
 
     m_projDetailWidget->setLayout(m_projLayout);
-    m_projLayout->addWidget(m_projNameLabel, Qt::AlignLeft);
+    m_projLayout->addWidget(m_projNameLabel, Qt::AlignTop);
 }
 
 void ProjectView::connectSiganlsAndSlots() { }

+ 69 - 14
QFD/widgets/ProjectListWidget.cpp

@@ -21,23 +21,13 @@ void ProjectListWidget::refreshList()
 
     for (int i = 1; i <= 100; i++) {
         QListWidgetItem *item = new QListWidgetItem;
-        item->setSizeHint(QSize(200, 60));
+        item->setSizeHint(QSize(200, 80));
         m_projListWidget->addItem(item);
 
-        QWidget *w = new QWidget();
+        ProjectListItemWidget *w = new ProjectListItemWidget();
+        w->setIndex(i);
+        w->setName(QString("工程%1").arg(i));
         m_projListWidget->setItemWidget(item, w);
-
-        QHBoxLayout *hBox = new QHBoxLayout(w);
-        hBox->setSpacing(0);
-        hBox->setMargin(10);
-
-        QLabel *idx = new QLabel(QString::number(i));
-        idx->setFixedWidth(20);
-        hBox->addWidget(idx);
-        hBox->addSpacing(10);
-        QLabel *name = new QLabel(QString("工程%1").arg(i));
-        hBox->addWidget(name);
-        hBox->addStretch();
     }
 }
 
@@ -87,3 +77,68 @@ void ProjectListWidget::setProjButtonsEnabled(bool enabled)
     m_renameButton->setEnabled(enabled);
     m_deleteButton->setEnabled(enabled);
 }
+
+ProjectListItemWidget::ProjectListItemWidget(QWidget *parent) : QWidget(parent)
+{
+    initialize();
+    initLayout();
+}
+
+void ProjectListItemWidget::initialize()
+{
+    m_hBoxLayout = new QHBoxLayout(this);
+    m_vBoxLayout = new QVBoxLayout();
+
+    m_indexLabel = new QLabel(this);
+    m_indexLabel->setFixedWidth(20);
+    m_indexLabel->setObjectName("indexLabel");
+    m_nameLabel = new QLabel(this);
+    m_nameLabel->setObjectName("nameLabel");
+    m_typeLabel1 = new QLabel(this);
+    m_typeLabel1->setObjectName("typeLabel1");
+    m_typeLabel1->setContentsMargins(10, 0, 0, 0);
+    m_typeLabel2 = new QLabel(this);
+    m_typeLabel2->setObjectName("typeLabel2");
+    m_typeLabel2->setContentsMargins(10, 0, 0, 0);
+
+    m_typeLabel1->setText("能力与技术重要度评估");
+    m_typeLabel2->setText("技术方案评估");
+
+    setStyleSheet("#indexLabel {font-size:14px}"
+                  "#nameLabel {color:#1196db; font-size:14px; font:bold}"
+                  "#typeLabel1 {color: gray;}"
+                  "#typeLabel2 {color: gray;}");
+}
+
+void ProjectListItemWidget::initLayout()
+{
+    m_hBoxLayout->addWidget(m_indexLabel);
+    m_hBoxLayout->addLayout(m_vBoxLayout);
+    m_hBoxLayout->addStretch();
+
+    m_vBoxLayout->addWidget(m_nameLabel);
+    m_vBoxLayout->addWidget(m_typeLabel1);
+    m_vBoxLayout->addWidget(m_typeLabel2);
+}
+
+void ProjectListItemWidget::setIndex(int index)
+{
+    m_index = index;
+    m_indexLabel->setText(QString::number(index));
+}
+
+int ProjectListItemWidget::index() const
+{
+    return m_index;
+}
+
+void ProjectListItemWidget::setName(const QString name)
+{
+    m_name = name;
+    m_nameLabel->setText(name);
+}
+
+const QString ProjectListItemWidget::name() const
+{
+    return m_name;
+}

+ 27 - 2
QFD/widgets/ProjectListWidget.h

@@ -13,8 +13,33 @@ class QLabel;
 class QListWidget;
 class QListWidgetItem;
 
-///
-/// \brief The ProjectListWidget class
+class ProjectListItemWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit ProjectListItemWidget(QWidget *parent = nullptr);
+
+    void initialize();
+    void initLayout();
+
+    void setIndex(int index);
+    int index() const;
+
+    void setName(const QString name);
+    const QString name() const;
+
+private:
+    int m_index;
+    QString m_name;
+
+    QHBoxLayout *m_hBoxLayout = nullptr;
+    QVBoxLayout *m_vBoxLayout = nullptr;
+    QLabel *m_indexLabel      = nullptr;
+    QLabel *m_nameLabel       = nullptr;
+    QLabel *m_typeLabel1      = nullptr;
+    QLabel *m_typeLabel2      = nullptr;
+};
+
 /// 工程列表
 class ProjectListWidget : public QWidget
 {