#include "ProjectListWidget.h" #include #include #include #include #include ProjectListWidget::ProjectListWidget(QWidget *parent) : QWidget(parent) { initialize(); initLayout(); connectSiganlsAndSlots(); refreshList(); } void ProjectListWidget::refreshList() { m_projListWidget->clear(); for (int i = 1; i <= 100; i++) { QListWidgetItem *item = new QListWidgetItem; item->setSizeHint(QSize(200, 80)); m_projListWidget->addItem(item); ProjectListItemWidget *w = new ProjectListItemWidget(); w->setIndex(i); w->setName(QString("工程%1").arg(i)); m_projListWidget->setItemWidget(item, w); } } void ProjectListWidget::initialize() { QPalette pal(palette()); pal.setColor(QPalette::Background, QColor("#f3f3f3")); setAutoFillBackground(true); setPalette(pal); m_vBoxLayout = new QVBoxLayout(this); m_buttonLayout = new QHBoxLayout(); m_searchLineEdit = new LineEdit(this); m_searchLineEdit->setIsClearButtonEnabled(true); m_searchLineEdit->setPlaceholderText("搜索工程"); m_renameButton = new ToolButton(NEWFLICON(FluentIcon, EDIT), this); m_renameButton->setToolTip("修改工程名"); m_newProjButton = new ToolButton(NEWFLICON(FluentIcon, ADD), this); m_newProjButton->setToolTip("新建工程"); m_deleteButton = new ToolButton(NEWFLICON(FluentIcon, DELETE), this); m_deleteButton->setToolTip("删除工程"); m_projListWidget = new QListWidget(this); m_projListWidget->setAlternatingRowColors(true); m_projListWidget->setStyleSheet("QListWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(255, 255, " "255);alternate-background-color: rgb(244, 244, 255);}"); setProjButtonsEnabled(false); } void ProjectListWidget::initLayout() { m_vBoxLayout->addLayout(m_buttonLayout); m_buttonLayout->addWidget(m_searchLineEdit); m_buttonLayout->addWidget(m_newProjButton); m_buttonLayout->addWidget(m_renameButton); m_buttonLayout->addWidget(m_deleteButton); m_vBoxLayout->addWidget(m_projListWidget); } void ProjectListWidget::connectSiganlsAndSlots() { } 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; }