From 7d0ca047c1c7e8fb3dcd0c5e379935dc2f886059 Mon Sep 17 00:00:00 2001 From: karlis <2995621482@qq.com> Date: Tue, 14 Feb 2023 21:33:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=8F=B3=E4=BE=A7?= =?UTF-8?q?=E6=A0=8F=E7=9A=84StyleList=E6=A0=B7=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Editor/RightBar/InfoDisplayWidget.cpp | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp index 82f5c97..b30074f 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp @@ -1,6 +1,9 @@ #include "InfoDisplayWidget.h" #include #include +#include +#include + void InfoDisplayWidget::setLayer(LayerWrapper *layer) { this->displayLayer = layer; @@ -72,9 +75,47 @@ void InfoDisplayWidget::generateLayerForm() layout->addRow("scale-X:", scaleX); layout->addRow("scale-Y:", scaleY); layout->setRowWrapPolicy(QFormLayout::DontWrapRows); + + bool styleEnabled = true; + if (styleEnabled) { + QListWidget* styleList = new QListWidget(this); + QListWidgetItem* item = new QListWidgetItem("样式列表"); + item->setFlags(Qt::NoItemFlags); + styleList->addItem(item); + static vector styleNames = { "样例1", "样例2", "样例3" }; + auto createStyleItem = [this, styleList](int index) { + QListWidgetItem* item = new QListWidgetItem; + QWidget* w = new QWidget; + item->setSizeHint(QSize(50, 40)); + QHBoxLayout* layout = new QHBoxLayout; + QPushButton* pushButton = new QPushButton(w); + QLabel* name = new QLabel(w); + name->setText(styleNames[index]); + pushButton->setText("×"); + pushButton->setFixedSize(QSize(20, 20)); + connect(pushButton, &QPushButton::clicked, [styleList,item,this]() { + styleList->removeItemWidget(item); + delete item; + // delete data in layer + emit requireRefreshPreview(); + }); + layout->addWidget(name); + layout->addWidget(pushButton); + w->setLayout(layout); + styleList->addItem(item); + styleList->setItemWidget(item, w); + }; + for (int i = 0; i < styleNames.size(); i++) + createStyleItem(i); + + + layout->addRow(styleList); + } } this->setLayout(layout); } + + void InfoDisplayWidget::generateElementForm() { }