#include "ProjectStateWidget.h" #include #include #include #include #include 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); } } } }