|
|
@@ -6,6 +6,7 @@ |
|
|
|
#include <QMessageBox> |
|
|
|
#include <QVBoxLayout> |
|
|
|
#include <algorithm> |
|
|
|
#include <QColorDialog> |
|
|
|
|
|
|
|
HMIModule::HMIModule(Ui::MainWindow* ui, QObject *parent) |
|
|
|
: QObject{parent}, ui_(ui), m_scene(nullptr) |
|
|
@@ -62,11 +63,10 @@ void HMIModule::setupNewComponent(HmiComponent* item) |
|
|
|
connect(item, &HmiComponent::selected, this, &HMIModule::onComponentSelected); |
|
|
|
connect(item, &HmiComponent::copyRequested, this, &HMIModule::onCopyRequested); |
|
|
|
connect(item, &HmiComponent::deleteRequested, this, &HMIModule::onDeleteRequested); |
|
|
|
connect(item, &HmiComponent::appearanceChangedRequested, this, &HMIModule::onChangeAppearanceRequested); // 连接信号 |
|
|
|
|
|
|
|
QString currentTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); |
|
|
|
QString log = QString("[%1] 创建 %2 组件") |
|
|
|
.arg(currentTime) |
|
|
|
.arg(item->componentName()); |
|
|
|
QString log = QString("[%1] 创建 %2 组件").arg(currentTime).arg(item->componentName()); |
|
|
|
emit logMessageGenerated(log); |
|
|
|
} |
|
|
|
|
|
|
@@ -177,6 +177,14 @@ void HMIModule::onDeleteRequested() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void HMIModule::onChangeAppearanceRequested(HmiComponent* item) |
|
|
|
{ |
|
|
|
QColor color = QColorDialog::getColor(item->color(), nullptr, "选择颜色"); |
|
|
|
if (color.isValid()) { |
|
|
|
item->setColor(color); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 添加页面后的槽函数 |
|
|
|
void HMIModule::onPageAdded(int pageNumber, int index) |
|
|
|
{ |
|
|
@@ -195,11 +203,9 @@ void HMIModule::onPageRemoved(int pageNumber, int index) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 确保提供 HMIModule::onComponentSelected 的定义 |
|
|
|
void HMIModule::onComponentSelected(HmiComponent* item) |
|
|
|
{ |
|
|
|
// 在这里添加你的代码 |
|
|
|
// 如果不需要任何操作,可以留空 |
|
|
|
// 不需要任何操作,可以留空 |
|
|
|
} |
|
|
|
|
|
|
|
// 新增页面的槽函数 |
|
|
@@ -208,6 +214,7 @@ void HMIModule::addPage() |
|
|
|
QTabWidget* tabWidget = ui_->tabWidget_2; |
|
|
|
int pageNumber; |
|
|
|
int insertIndex = -1; |
|
|
|
int tabIndex; // 在此处声明 tabIndex |
|
|
|
|
|
|
|
// 检查是否有可用的页面编号 |
|
|
|
if (!m_availablePageNumbers.isEmpty()) { |
|
|
@@ -224,10 +231,8 @@ void HMIModule::addPage() |
|
|
|
} else { |
|
|
|
pageNumber = ++m_pageCount; |
|
|
|
} |
|
|
|
|
|
|
|
// 获取 Page 1 的 GraphicsView |
|
|
|
QGraphicsView* firstGraphicsView = ui_->hmiGraphicsView; |
|
|
|
CustomGraphicsScene* firstScene = m_scene; // 获取 Page 1 的 Scene |
|
|
|
// 获取 Page 1 的 Scene |
|
|
|
CustomGraphicsScene* firstScene = m_scene; |
|
|
|
|
|
|
|
// 创建新的页面部件 |
|
|
|
QWidget* newPage = new QWidget(tabWidget); |
|
|
@@ -238,10 +243,8 @@ void HMIModule::addPage() |
|
|
|
QGraphicsView* newGraphicsView = new QGraphicsView(newPage); |
|
|
|
CustomGraphicsScene* newScene = new CustomGraphicsScene(newGraphicsView, this); |
|
|
|
|
|
|
|
// 设置 GraphicsView 的大小,上下左右各扩大 10 像素 |
|
|
|
QSize newViewSize = firstGraphicsView->size(); |
|
|
|
newViewSize.setWidth(newViewSize.width() + 20); // 左右各增加 10 像素 |
|
|
|
newViewSize.setHeight(newViewSize.height() + 20); // 上下各增加 10 像素 |
|
|
|
// 设置 GraphicsView 的大小 |
|
|
|
QSize newViewSize(691, 381); // 设置为指定的宽度和高度 |
|
|
|
newGraphicsView->resize(newViewSize); |
|
|
|
|
|
|
|
// 设置 GraphicsScene 的大小与 Page 1 相同 |
|
|
@@ -256,7 +259,6 @@ void HMIModule::addPage() |
|
|
|
newPage->setLayout(layout); |
|
|
|
|
|
|
|
// 添加到 TabWidget |
|
|
|
int tabIndex; |
|
|
|
if (insertIndex != -1) { |
|
|
|
tabIndex = insertIndex; |
|
|
|
tabWidget->insertTab(tabIndex, newPage, pageName); |
|
|
@@ -269,7 +271,6 @@ void HMIModule::addPage() |
|
|
|
connect(newScene, &CustomGraphicsScene::copyRequestFromScene, this, &HMIModule::onCopyRequested); |
|
|
|
connect(newScene, &CustomGraphicsScene::pasteRequestFromScene, this, &HMIModule::onPasteRequested); |
|
|
|
connect(newScene, &CustomGraphicsScene::deleteRequestFromScene, this, &HMIModule::onDeleteRequested); |
|
|
|
// ***************************************************************************** |
|
|
|
|
|
|
|
// 发送 pageAdded 信号 |
|
|
|
emit pageAdded(pageNumber, tabIndex); |
|
|
|