12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #include "ExpertListWidget.h"
- #include <Common/Icon.h>
- #include <QBoxLayout>
- #include <QListWidget>
- #include <QLabel>
- #include <QDebug>
- ExpertListWidget::ExpertListWidget(QWidget *parent) : QWidget(parent)
- {
- initialize();
- initLayout();
- connectSignalsAndSlots();
- refreshList();
- }
- void ExpertListWidget::refreshList()
- {
- m_expertListWidget->clear();
- for (int i = 1; i <= 100; i++) {
- QListWidgetItem *item = new QListWidgetItem;
- item->setSizeHint(QSize(200, 60));
- m_expertListWidget->addItem(item);
- QWidget *w = new QWidget();
- m_expertListWidget->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();
- }
- }
- bool ExpertListWidget::isItemSelected() const
- {
- return m_expertListWidget->selectedItems().count() > 0;
- }
- void ExpertListWidget::initialize()
- {
- m_vBoxLayout = new QVBoxLayout(this);
- m_expertListWidget = new QListWidget(this);
- m_expertListWidget->setAlternatingRowColors(true);
- m_expertListWidget->setStyleSheet("QListWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(255, 255, "
- "255);alternate-background-color: rgb(244, 244, 255);}");
- }
- void ExpertListWidget::initLayout()
- {
- m_vBoxLayout->addWidget(m_expertListWidget);
- }
- void ExpertListWidget::connectSignalsAndSlots()
- {
- connect(m_expertListWidget, &QListWidget::itemDoubleClicked, this, &ExpertListWidget::slotItemDoubleClicked);
- connect(m_expertListWidget, &QListWidget::itemClicked, this, &ExpertListWidget::slotItemClicked);
- connect(m_expertListWidget, &QListWidget::currentItemChanged, this, &ExpertListWidget::slotCurrentItemChanged);
- connect(m_expertListWidget, &QListWidget::currentRowChanged, this, &ExpertListWidget::slotCurrentRowChanged);
- connect(m_expertListWidget, &QListWidget::itemSelectionChanged, this, &ExpertListWidget::slotItemSelectionChanged);
- }
- void ExpertListWidget::slotItemDoubleClicked(QListWidgetItem *)
- {
- emit siganlItemDoubleClicked();
- }
- void ExpertListWidget::slotItemClicked(QListWidgetItem *)
- {
- qDebug() << __FUNCTION__ << __LINE__;
- }
- void ExpertListWidget::slotCurrentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
- {
- qDebug() << __FUNCTION__ << __LINE__ << current << previous;
- }
- void ExpertListWidget::slotCurrentRowChanged(int currentRow)
- {
- qDebug() << __FUNCTION__ << __LINE__ << currentRow;
- }
- void ExpertListWidget::slotItemSelectionChanged()
- {
- qDebug() << __FUNCTION__ << __LINE__ << m_expertListWidget->selectedItems();
- emit signalSelectionChanged();
- }
|