From 4b97ece85d4842ee78abe759a2adb896aa4287f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com>
Date: Sat, 19 Nov 2022 17:17:07 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86Preview=E7=AA=97?=
=?UTF-8?q?=E5=8F=A3=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ArchitectureColoredPainting.vcxproj | 2 ++
...rchitectureColoredPainting.vcxproj.filters | 6 +++++
ArchitectureColoredPainting/EditorWidget.ui | 27 +++++++++++++------
.../src/Editor/EditorWidget.cpp | 21 ++++-----------
.../src/Editor/EditorWidget.h | 7 ++---
.../src/Editor/PreviewWindow.cpp | 26 ++++++++++++++++++
.../src/Editor/PreviewWindow.h | 19 +++++++++++++
7 files changed, 79 insertions(+), 29 deletions(-)
create mode 100644 ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp
create mode 100644 ArchitectureColoredPainting/src/Editor/PreviewWindow.h
diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj
index 6aaae03..84fd238 100644
--- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj
+++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj
@@ -103,6 +103,7 @@
+
@@ -159,6 +160,7 @@
+
diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters
index 1d9364f..8fb8e83 100644
--- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters
+++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters
@@ -138,6 +138,9 @@
Source Files
+
+ Source Files
+
@@ -164,6 +167,9 @@
Header Files
+
+ Header Files
+
diff --git a/ArchitectureColoredPainting/EditorWidget.ui b/ArchitectureColoredPainting/EditorWidget.ui
index 68e9a6c..b3ad826 100644
--- a/ArchitectureColoredPainting/EditorWidget.ui
+++ b/ArchitectureColoredPainting/EditorWidget.ui
@@ -27,18 +27,29 @@
0
-
-
-
- 纹理编辑
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
+
+
-
+
+
+ 纹理编辑
+
+
+
+ -
+
+
+
+
+
+ PreviewWindow
+ QGraphicsView
+
+
+
diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp
index c3ff919..1e0544e 100644
--- a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp
+++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp
@@ -3,28 +3,17 @@
EditorWidget::EditorWidget(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
+ previewWindow = ui.Preview;
}
EditorWidget::~EditorWidget()
{
}
-
+#include "QGraphicsItem.h"
+#include "QGraphicsScene.h"
+#include
using namespace std;
void EditorWidget::paintEvent(QPaintEvent *event)
{
- QPainter pt;
- pt.begin(this);
- pt.setRenderHint(QPainter::Antialiasing);
- QFile settingFile;
- settingFile.setFileName("C:/Users/Karlis/Desktop/data.json");
- settingFile.open(QFile::ReadOnly);
- QByteArray setting = settingFile.readAll().trimmed();
- QJsonDocument jsonDoc(QJsonDocument::fromJson(setting));
- auto jElements = jsonDoc.object().value("elements").toArray();
- for (auto &&ele : jElements)
- {
- SimpleElement element(ele.toObject());
- pt.drawPath(element.getPaintObject());
- }
- pt.end();
+ previewWindow->show();
}
diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.h b/ArchitectureColoredPainting/src/Editor/EditorWidget.h
index 09d7eb4..10ae5b8 100644
--- a/ArchitectureColoredPainting/src/Editor/EditorWidget.h
+++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.h
@@ -1,15 +1,11 @@
#pragma once
#include "GraphicElement.h"
+#include "PreviewWindow.h"
#include "ui_EditorWidget.h"
#include
#include
-#include
-#include
-#include
-#include
-#include
class EditorWidget : public QWidget
{
Q_OBJECT
@@ -21,4 +17,5 @@ class EditorWidget : public QWidget
private:
Ui::EditorWidgetClass ui;
+ PreviewWindow *previewWindow;
};
diff --git a/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp b/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp
new file mode 100644
index 0000000..9de0d83
--- /dev/null
+++ b/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp
@@ -0,0 +1,26 @@
+#include "PreviewWindow.h"
+
+PreviewWindow::PreviewWindow(QWidget *parent) : QGraphicsView(parent)
+{
+ this->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
+ mainScene = new QGraphicsScene(this);
+ this->setScene(mainScene);
+}
+void PreviewWindow::show()
+{
+ mainScene->clear();
+ QFile settingFile;
+ settingFile.setFileName("C:/Users/Karlis/Desktop/data.json");
+ settingFile.open(QFile::ReadOnly);
+ QByteArray setting = settingFile.readAll().trimmed();
+ QJsonDocument jsonDoc(QJsonDocument::fromJson(setting));
+ auto jElements = jsonDoc.object().value("elements").toArray();
+ for (auto &&ele : jElements)
+ {
+ SimpleElement element(ele.toObject());
+ QGraphicsPathItem *item = new QGraphicsPathItem(element.getPaintObject());
+ mainScene->addItem(item);
+ }
+
+ QGraphicsView::show();
+}
diff --git a/ArchitectureColoredPainting/src/Editor/PreviewWindow.h b/ArchitectureColoredPainting/src/Editor/PreviewWindow.h
new file mode 100644
index 0000000..ac6805a
--- /dev/null
+++ b/ArchitectureColoredPainting/src/Editor/PreviewWindow.h
@@ -0,0 +1,19 @@
+#pragma once
+#include "GraphicElement.h"
+#include "QGraphicsItem.h"
+#include "QGraphicsView.h"
+#include
+#include
+#include
+#include
+#include
+class PreviewWindow : public QGraphicsView
+{
+ Q_OBJECT
+ private:
+ QGraphicsScene *mainScene;
+
+ public:
+ PreviewWindow(QWidget *parent = 0);
+ void show();
+};