From fef76683511f22634fec48dd025fe11e6ac54fb8 Mon Sep 17 00:00:00 2001 From: karlis <2995621482@qq.com> Date: Mon, 20 Feb 2023 13:48:39 +0800 Subject: [PATCH] style dialog --- .../src/Editor/RightBar/InfoDisplayWidget.cpp | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp index b30074f..f197005 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include void InfoDisplayWidget::setLayer(LayerWrapper *layer) { @@ -88,19 +90,35 @@ void InfoDisplayWidget::generateLayerForm() QWidget* w = new QWidget; item->setSizeHint(QSize(50, 40)); QHBoxLayout* layout = new QHBoxLayout; - QPushButton* pushButton = new QPushButton(w); + QPushButton* deleteButton = new QPushButton(w); + QPushButton* detailButton = 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]() { + detailButton->setText("..."); + detailButton->setFixedSize(QSize(20, 20)); + deleteButton->setText("×"); + deleteButton->setFixedSize(QSize(20, 20)); + connect(detailButton, &QPushButton::clicked, [styleList, item, this]() { + QDialog dlg(this); + dlg.setWindowTitle("样式详情"); + dlg.resize(400, 200); + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Save | QDialogButtonBox::Cancel, &dlg); + connect(buttonBox, &QDialogButtonBox::accepted, &dlg, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, &dlg, &QDialog::reject); + bool updateStyle = dlg.exec(); + if (updateStyle) { + // 在此处修改新样式信息至内存 + } + }); + connect(deleteButton, &QPushButton::clicked, [styleList,item,this]() { styleList->removeItemWidget(item); delete item; - // delete data in layer + // 删除layer对应样式 emit requireRefreshPreview(); }); layout->addWidget(name); - layout->addWidget(pushButton); + layout->addWidget(detailButton); + layout->addWidget(deleteButton); w->setLayout(layout); styleList->addItem(item); styleList->setItemWidget(item, w);