#include #include #include #include #include "electricElementsPanel.h" #include "electricElementsListwidget.h" ElectricElementsPanel::ElectricElementsPanel(QWidget *parent) : QWidget(parent) { m_pListWidget = new ElectricElementsListwidget(); QVBoxLayout *vBoxLayout = new QVBoxLayout(this); vBoxLayout->setContentsMargins(0, 0, 0, 0); vBoxLayout->addWidget(m_pListWidget); m_pListWidget->setViewMode(QListView::IconMode); m_pListWidget->setResizeMode(QListView::Adjust); m_pListWidget->setMovement(QListView::Static); connect(m_pListWidget,&QListWidget::itemClicked,this,&ElectricElementsPanel::onItemClicked); } ElectricElementsPanel::~ElectricElementsPanel() { if(m_pListWidget) delete m_pListWidget; } void ElectricElementsPanel::initial() { for(auto iter = m_mapEleData.begin();iter != m_mapEleData.end();++iter) { QIcon icon(":/images/element/icons_triangle.png"); QListWidgetItem* pItem = new QListWidgetItem(icon,iter.key()); pItem->setSizeHint(QSize(50,50)); pItem->setData(Qt::UserRole,iter.value()); m_pListWidget->addItem(pItem); } } void ElectricElementsPanel::setData(const QMap& map) { m_mapEleData = map; initial(); } void ElectricElementsPanel::onItemClicked(QListWidgetItem* item) { item->setBackground(QBrush(QColor(135,206,235,220))); GraphicsItemType itetType = (GraphicsItemType)item->data(Qt::UserRole).toInt(); emit addGraphicsItem(itetType); }