#include "ProjectListWidget.h" #include #include #include #include #include #include #include ProjectListWidget::ProjectListWidget(QWidget *parent) : QWidget(parent) { initialize(); initLayout(); connectSiganlsAndSlots(); refreshList(); } void ProjectListWidget::refreshList() { for (int i = 1; i <= 20; i++) { QTreeWidgetItem *item1 = new QTreeWidgetItem({ QString("工程%1").arg(i) }); m_treeWidget->addTopLevelItem(item1); item1->addChildren({ new QTreeWidgetItem({ "能力需求评估" }), new QTreeWidgetItem({ "技术措施评估" }), new QTreeWidgetItem({ "技术方案评估" }) }); } m_treeWidget->expandAll(); return; // m_listWidget->clear(); // for (int i = 1; i <= 100; i++) { // QListWidgetItem *item = new QListWidgetItem; // item->setSizeHint(QSize(200, 80)); // m_listWidget->addItem(item); // ProjectListItemWidget *w = new ProjectListItemWidget(); // w->setIndex(i); // w->setName(QString("工程%1").arg(i)); // m_listWidget->setItemWidget(item, w); // } } void ProjectListWidget::initialize() { QPalette pal(palette()); pal.setColor(QPalette::Background, QColor("#eeeeee")); setAutoFillBackground(true); setPalette(pal); m_vBoxLayout = new QVBoxLayout(this); // m_listWidget = new QListWidget(this); // m_listWidget->setAlternatingRowColors(true); // 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_treeWidget = new TreeWidget(this); m_treeWidget->setHeaderHidden(true); } void ProjectListWidget::initLayout() { m_vBoxLayout->setMargin(0); // m_vBoxLayout->addWidget(m_listWidget); m_vBoxLayout->addWidget(m_treeWidget); } void ProjectListWidget::connectSiganlsAndSlots() { // connect(m_listWidget, &QListWidget::itemDoubleClicked, this, &ProjectListWidget::slotItemDoubleClicked); // connect(m_listWidget, &QListWidget::itemClicked, this, &ProjectListWidget::slotItemClicked); // connect(m_listWidget, &QListWidget::currentItemChanged, this, &ProjectListWidget::slotCurrentItemChanged); // connect(m_listWidget, &QListWidget::currentRowChanged, this, &ProjectListWidget::slotCurrentRowChanged); // connect(m_listWidget, &QListWidget::itemSelectionChanged, this, &ProjectListWidget::slotItemSelectionChanged); } void ProjectListWidget::slotItemDoubleClicked(QListWidgetItem *item) { qDebug() << __FUNCTION__ << __LINE__; } void ProjectListWidget::slotItemClicked(QListWidgetItem *item) { qDebug() << __FUNCTION__ << __LINE__; } void ProjectListWidget::slotCurrentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) { qDebug() << __FUNCTION__ << __LINE__; } void ProjectListWidget::slotCurrentRowChanged(int currentRow) { qDebug() << __FUNCTION__ << __LINE__; } void ProjectListWidget::slotItemSelectionChanged() { qDebug() << __FUNCTION__ << __LINE__; } 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; }