54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include <QVBoxLayout>
|
|
#include <QListWidgetItem>
|
|
#include <QIcon>
|
|
#include <QBrush>
|
|
|
|
#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<QString,GraphicsItemType>& 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);
|
|
}
|