12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include "ProjectStateWidget.h"
- #include <QTableWidget>
- #include <QHeaderView>
- #include <QBoxLayout>
- #include <QDateTime>
- #include <QDebug>
- ProjectStateWidget::ProjectStateWidget(QWidget *parent) : QWidget(parent)
- {
- initialize();
- initLayout();
- refreshList();
- }
- void ProjectStateWidget::initialize()
- {
- m_vBoxLayout = new QVBoxLayout(this);
- m_projTableWidget = new QTableWidget(this);
- m_projTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- m_projTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
- m_projTableWidget->setSelectionMode(QAbstractItemView::NoSelection);
- m_projTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
- m_projTableWidget->verticalHeader()->setVisible(false);
- const QStringList headers = { "工程名", "工程类型", "专家信息", "评估状态" };
- m_projTableWidget->setColumnCount(headers.count());
- m_projTableWidget->setHorizontalHeaderLabels(headers);
- m_projTableWidget->setAlternatingRowColors(true);
- m_projTableWidget->setStyleSheet(
- "QTableWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(244, 244, "
- "255);alternate-background-color: rgb(255, 255, 255);}"
- // "QHeaderView::section{font-size: 14px;font:bold;font-family: 'Microsoft YaHei UI';}"
- "QHeaderView::section {"
- "background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"
- "stop:0 #616161, stop: 0.5 #505050,"
- "stop: 0.6 #434343, stop:1 #656565);"
- "color: white;"
- "padding-left: 4px;"
- "border: 1px solid #6c6c6c;"
- "}");
- }
- void ProjectStateWidget::initLayout()
- {
- layout()->addWidget(m_projTableWidget);
- }
- void ProjectStateWidget::refreshList()
- {
- m_projTableWidget->clearContents();
- int projCount = 10;
- QStringList list = { "能力需求指标体系", "技术措施指标体系", "方案评估" };
- int expertCount = 3;
- int rowCount = projCount * list.count() * expertCount;
- m_projTableWidget->setRowCount(rowCount);
- for (int i = 0; i < projCount; i++) {
- int row = i * list.count() * expertCount;
- QTableWidgetItem *item = new QTableWidgetItem(QString("工程%1").arg(i + 1));
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setTextAlignment(Qt::AlignCenter);
- m_projTableWidget->setItem(row, 0, item);
- m_projTableWidget->setSpan(row, 0, list.count() * expertCount, 1);
- for (int j = 0; j < list.count(); j++) {
- row = i * list.count() * expertCount + j * expertCount;
- QTableWidgetItem *item = new QTableWidgetItem(list[j]);
- item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- item->setTextAlignment(Qt::AlignCenter);
- m_projTableWidget->setItem(row, 1, item);
- m_projTableWidget->setSpan(row, 1, expertCount, 1);
- for (int k = 0; k < 3; k++) {
- row = i * list.count() * expertCount + j * expertCount + k;
- QTableWidgetItem *expItem = new QTableWidgetItem(QString("专家%1").arg(k + 1));
- expItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- expItem->setTextAlignment(Qt::AlignCenter);
- m_projTableWidget->setItem(row, 2, expItem);
- unsigned seed = QDateTime::currentDateTime().toTime_t() + pow(row, 4);
- srand(seed);
- bool loaded = (rand() % 4) == 0;
- QTableWidgetItem *loadItem = new QTableWidgetItem(loaded ? "已录入" : "未录入");
- loadItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
- loadItem->setTextAlignment(Qt::AlignCenter);
- m_projTableWidget->setItem(row, 3, loadItem);
- }
- }
- }
- }
|