diff --git a/NameCreater/INameCreater.cpp b/NameCreater/INameCreater.cpp index 35dea29..90a0b6c 100644 --- a/NameCreater/INameCreater.cpp +++ b/NameCreater/INameCreater.cpp @@ -23,33 +23,42 @@ INameCreater::~INameCreater() void INameCreater::saveToImage(const QString& filename, QGraphicsScene* scene) { - scene->clearSelection(); // Selections would also render to the file - scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents - QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene - image.fill(Qt::transparent); // Start all pixels transparent - int dpm = 300 / 0.0254; // ~300 DPI - image.setDotsPerMeterX(dpm); - image.setDotsPerMeterY(dpm); + scene->clearSelection(); // Selections would also render to the file + scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents + QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene + image.fill(Qt::transparent); // Start all pixels transparent + int dpm = 300 / 0.0254; // ~300 DPI + image.setDotsPerMeterX(dpm); + image.setDotsPerMeterY(dpm); + + + QPainter painter(&image); + scene->render(&painter); - QPainter painter(&image); - scene->render(&painter); #ifdef Q_OS_MAC - QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd"); + QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd"); + qDebug() << "app director path" < getNameByFile(Name_Type_e type, const QString& filename); QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); diff --git a/NameCreater/NameCreater.cpp b/NameCreater/NameCreater.cpp index 1d67310..463bf02 100644 --- a/NameCreater/NameCreater.cpp +++ b/NameCreater/NameCreater.cpp @@ -18,6 +18,7 @@ #include "NewFiveCreater.h" #include "HKHolderCreater.h" #include "customlogo.h" +#include "customlogo2.h" #define TOWEL_FONT_PATH ":/NameCreater/_exp/W1.ttc" @@ -30,7 +31,7 @@ //#define FONT_CHT_URL "http://45.32.51.135/font/TaiwanPearl-SemiBold.ttf" NameCreater::NameCreater(QWidget *parent) - : QMainWindow(parent),custom2(NULL) + : QMainWindow(parent) { ui.setupUi(this); connect(ui.fivesingle_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); @@ -121,43 +122,58 @@ void NameCreater::loadFont(const QByteArray& fontdata){ void NameCreater::OnClickedReadBtn() { auto sender =(QPushButton*) QObject::sender(); - auto fileContentReady = [this, sender](const QString &fileName, const QByteArray &fileContent) { - if (fileName.isEmpty()) { - // No file was selected - } - else { - // Use fileName and fileContent - if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color); - - if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); - if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); - if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font_towel, this->font_color); - if (sender == ui.birthday_zh_eng_btn) { - BirthdayCreater creater; - creater.setEnglishFont(font_english); - creater.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color); - } - if (sender == ui.birthday_eng_eng_btn){ - BirthdayCreater b; - b.setEnglishFont(font_english); - b.generaImageFromCSV(Name_Type_e::Name_eng, fileName,fileContent,this->font, this->font_color); - } - if (sender == ui.handkerchief_btn) { - QFont newFont(font); - newFont.setPixelSize(78); - QColor newColor(0,0,0); - HKHolderCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, newFont, newColor); - } - if (sender == ui.fivesingle_zh_eng_btn) { - FiveToSingle f; - f.setEnglishFont(this->font_english); - f.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color); - return; - } +#ifdef Q_OS_WASM + auto fileContentReady = [this, sender](const QString &fileName, const QByteArray &fileContent) { + if (!fileName.isEmpty()) { + this->execCreater(sender, fileName, fileContent); } + }; QFileDialog::getOpenFileContent("CSV (*.csv)", fileContentReady); + +#else + QString filename = QFileDialog::getOpenFileName(nullptr,"Open Name File", QDir::currentPath(),"CSV file(*.csv)"); + if(!filename.isEmpty()){ + QFile _f(filename); + if(_f.open(QIODevice::ReadOnly)){ + execCreater(sender, filename, _f.readAll()); + } + } +#endif +} + +void NameCreater::execCreater(QObject* sender, const QString& fileName, const QByteArray& fileContent) { + + // Use fileName and fileContent + if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color); + + if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); + if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); + if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font_towel, this->font_color); + if (sender == ui.birthday_zh_eng_btn) { + BirthdayCreater creater; + creater.setEnglishFont(font_english); + creater.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color); + } + if (sender == ui.birthday_eng_eng_btn){ + BirthdayCreater b; + b.setEnglishFont(font_english); + b.generaImageFromCSV(Name_Type_e::Name_eng, fileName,fileContent,this->font, this->font_color); + } + if (sender == ui.handkerchief_btn) { + QFont newFont(font); + newFont.setPixelSize(78); + QColor newColor(0,0,0); + HKHolderCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, newFont, newColor); + } + if (sender == ui.fivesingle_zh_eng_btn) { + FiveToSingle f; + f.setEnglishFont(this->font_english); + f.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color); + return; + } + } void NameCreater::OnClickedCustomLogoBtn() { @@ -171,10 +187,11 @@ void NameCreater::OnClickedCustomLogoBtn() { } void NameCreater::OnClickedCustomLogo2Btn(){ - if (custom2 == NULL){ - custom2 = new customlogo2(&this->font); - } - custom2->show(); + QEventLoop loop; + customlogo2 widget(&this->font); + connect(&widget, &CustomLogo::finished, &loop, &QEventLoop::quit); + widget.show(); + loop.exec(); } void NameCreater::onFontDownloadFinished(QNetworkReply *reply){ diff --git a/NameCreater/NameCreater.h b/NameCreater/NameCreater.h index 5d43239..d1157a4 100644 --- a/NameCreater/NameCreater.h +++ b/NameCreater/NameCreater.h @@ -7,7 +7,6 @@ #include #include -#include "customlogo2.h" class NameCreater : public QMainWindow { @@ -22,10 +21,11 @@ private: QColor font_color; - customlogo2 *custom2; + QNetworkAccessManager network_mgr; void loadFont(const QByteArray& fontdata); + void execCreater(QObject*sender, const QString&fileName, const QByteArray &fileContent); private Q_SLOTS: void OnClickedReadBtn(); diff --git a/NameCreater/NameCreater.pro b/NameCreater/NameCreater.pro index f179bc1..a685edd 100644 --- a/NameCreater/NameCreater.pro +++ b/NameCreater/NameCreater.pro @@ -21,6 +21,7 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin wasm-emscripten{ QMAKE_LFLAGS+= -s TOTAL_MEMORY=67108864 + QMAKE_LFLAGS += -s ALLOW_MEMORY_GROWTH=1 } -#QMAKE_LFLAGS += -s ALLOW_MEMORY_GROWTH=1 + diff --git a/NameCreater/NameCreater.pro.user b/NameCreater/NameCreater.pro.user index 9f8ec1c..3192816 100644 --- a/NameCreater/NameCreater.pro.user +++ b/NameCreater/NameCreater.pro.user @@ -1,14 +1,14 @@ - + EnvironmentId - {fcddcb90-0e4f-4f41-99d2-8ce9f168d92c} + {2e5b9b7d-86cb-4086-85fb-32be36077845} ProjectExplorer.Project.ActiveTarget - 0 + 1 ProjectExplorer.Project.EditorSettings @@ -41,7 +41,7 @@ false true false - 2 + 0 true true 0 @@ -74,12 +74,17 @@ 0 true + + -fno-delayed-template-parsing + + true + Builtin.BuildSystem true true Builtin.DefaultTidyAndClazy - 4 - true + 2 + false @@ -90,17 +95,17 @@ ProjectExplorer.Project.Target.0 - Desktop - Desktop Qt 5.15.2 clang 64bit - Desktop Qt 5.15.2 clang 64bit - qt.qt5.5152.clang_64_kit + WebAssemblyDeviceType + QwbAssembly Qt 5.15.2 + QwbAssembly Qt 5.15.2 + {7751e2ea-88c1-4df7-b6c4-78f8275796e2} 0 - 0 + -1 0 0 - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Debug - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Debug + C:\dev\namecreater\NameCreater\build\QwbAssembly_Qt_5_15_2-Debug + C:/dev/namecreater/NameCreater/build/QwbAssembly_Qt_5_15_2-Debug true @@ -138,8 +143,8 @@ 2 - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Release - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Release + C:\dev\namecreater\NameCreater\build\QwbAssembly_Qt_5_15_2-Release + C:/dev/namecreater/NameCreater/build/QwbAssembly_Qt_5_15_2-Release true @@ -179,8 +184,161 @@ 0 - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Profile - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Profile + C:\dev\namecreater\NameCreater\build\QwbAssembly_Qt_5_15_2-Profile + C:/dev/namecreater/NameCreater/build/QwbAssembly_Qt_5_15_2-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + 0 + + true + true + 0 + true + + + -e cpu-cycles --call-graph "dwarf,4096" -F 250 + NameCreater + WebAssembly.RunConfiguration.EmrunC:/dev/namecreater/NameCreater/NameCreater.pro + C:/dev/namecreater/NameCreater/NameCreater.pro + false + true + true + chrome + + 1 + + + + ProjectExplorer.Project.Target.1 + + Desktop + Desktop Qt 5.15.2 MSVC2019 64bit + Desktop Qt 5.15.2 MSVC2019 64bit + {c81acbfe-eec2-40c2-b148-0e5ee627adfb} + 0 + 0 + 0 + + 0 + C:\dev\namecreater\NameCreater\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Debug + C:/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_MSVC2019_64bit-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + C:\dev\namecreater\NameCreater\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Release + C:/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_MSVC2019_64bit-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + C:\dev\namecreater\NameCreater\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Profile + C:/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_MSVC2019_64bit-Profile true @@ -238,37 +396,38 @@ true 0 true + 2 false - -e cpu-cycles --call-graph dwarf,4096 -F 250 + -e cpu-cycles --call-graph "dwarf,4096" -F 250 - Qt4ProjectManager.Qt4RunConfiguration:/Users/shouchih/dev/namecreater/NameCreater/NameCreater.pro - /Users/shouchih/dev/namecreater/NameCreater/NameCreater.pro + Qt4ProjectManager.Qt4RunConfiguration:C:/dev/namecreater/NameCreater/NameCreater.pro + C:/dev/namecreater/NameCreater/NameCreater.pro false true true true - /Users/shouchih/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_clang_64bit-Debug/NameCreater.app/Contents/MacOS + C:/dev/namecreater/NameCreater/build/Desktop_Qt_5_15_2_MSVC2019_64bit-Debug 1 - ProjectExplorer.Project.Target.1 + ProjectExplorer.Project.Target.2 - WebAssemblyDeviceType - Qt 5.15.2 WebAssembly - Qt 5.15.2 WebAssembly - qt.qt5.5152.wasm_32_kit + Desktop + Desktop Qt 6.7.2 MSVC2019 64bit + Desktop Qt 6.7.2 MSVC2019 64bit + qt.qt6.672.win64_msvc2019_64_kit 0 - -1 + 0 0 0 - /Users/shouchih/dev/namecreater/NameCreater/build/Qt_5_15_2_WebAssembly-Debug - /Users/shouchih/dev/namecreater/NameCreater/build/Qt_5_15_2_WebAssembly-Debug + C:\dev\namecreater\NameCreater\build\Desktop_Qt_6_7_2_MSVC2019_64bit-Debug + C:/dev/namecreater/NameCreater/build/Desktop_Qt_6_7_2_MSVC2019_64bit-Debug true @@ -306,8 +465,8 @@ 2 - /Users/shouchih/dev/namecreater/NameCreater/build/Qt_5_15_2_WebAssembly-Release - /Users/shouchih/dev/namecreater/NameCreater/build/Qt_5_15_2_WebAssembly-Release + C:\dev\namecreater\NameCreater\build\Desktop_Qt_6_7_2_MSVC2019_64bit-Release + C:/dev/namecreater/NameCreater/build/Desktop_Qt_6_7_2_MSVC2019_64bit-Release true @@ -347,8 +506,8 @@ 0 - /Users/shouchih/dev/namecreater/NameCreater/build/Qt_5_15_2_WebAssembly-Profile - /Users/shouchih/dev/namecreater/NameCreater/build/Qt_5_15_2_WebAssembly-Profile + C:\dev\namecreater\NameCreater\build\Desktop_Qt_6_7_2_MSVC2019_64bit-Profile + C:/dev/namecreater/NameCreater/build/Desktop_Qt_6_7_2_MSVC2019_64bit-Profile true @@ -388,28 +547,207 @@ 0 3 - 0 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 true true 0 true + - -e cpu-cycles --call-graph dwarf,4096 -F 250 - NameCreater - WebAssembly.RunConfiguration.Emrun/Users/shouchih/dev/namecreater/NameCreater/NameCreater.pro - /Users/shouchih/dev/namecreater/NameCreater/NameCreater.pro + 2 + + false + -e cpu-cycles --call-graph "dwarf,4096" -F 250 + + Qt4ProjectManager.Qt4RunConfiguration:C:/dev/namecreater/NameCreater/NameCreater.pro + C:/dev/namecreater/NameCreater/NameCreater.pro false true + true true - chrome + C:/dev/namecreater/NameCreater/build/Desktop_Qt_6_7_2_MSVC2019_64bit-Debug 1 + + ProjectExplorer.Project.Target.3 + + Desktop + Desktop Qt 5.12.12 MinGW 64-bit + Desktop Qt 5.12.12 MinGW 64-bit + qt.qt5.51212.win64_mingw73_kit + 0 + 0 + 0 + + 0 + C:\dev\namecreater\build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Debug + C:/dev/namecreater/build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + C:\dev\namecreater\build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Release + C:/dev/namecreater/build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + C:\dev\namecreater\build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Profile + C:/dev/namecreater/build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:C:/dev/namecreater/NameCreater/NameCreater.pro + C:/dev/namecreater/NameCreater/NameCreater.pro + false + true + true + false + true + C:/dev/namecreater/build-NameCreater-Desktop_Qt_5_12_12_MinGW_64_bit-Debug + + 1 + + ProjectExplorer.Project.TargetCount - 2 + 4 ProjectExplorer.Project.Updater.FileVersion diff --git a/NameCreater/NameCreater.vcxproj b/NameCreater/NameCreater.vcxproj index bfb8cd6..acd4265 100644 --- a/NameCreater/NameCreater.vcxproj +++ b/NameCreater/NameCreater.vcxproj @@ -21,28 +21,28 @@ {B66B108B-6DA8-408D-936D-988FF8B6B722} QtVS_v304 - 10.0.16299.0 + 10.0 10.0 10.0.16299.0 - 10.0.19041.0 + 10.0 $(MSBuildProjectDirectory)\QtMsBuild Application - v140 + v143 Application - v142 + v143 Application - v140 + v143 Application - v142 + v143 @@ -50,12 +50,12 @@ 5.15.2_msvc2019_64 - core;gui;widgets + core;gui;widgets;network debug - 5.15.2_msvc2019_64 - core;gui;widgets;network + $(DefaultQtVersion) + core;gui;widgets;network;core5compat debug @@ -65,7 +65,7 @@ $(DefaultQtVersion) - core;gui;widgets;network + core;gui;widgets;network;core5compat release @@ -186,12 +186,14 @@ + + @@ -202,6 +204,7 @@ + diff --git a/NameCreater/NameCreater.vcxproj.filters b/NameCreater/NameCreater.vcxproj.filters index d574e34..d9dc486 100644 --- a/NameCreater/NameCreater.vcxproj.filters +++ b/NameCreater/NameCreater.vcxproj.filters @@ -67,6 +67,9 @@ Creaters + + Creaters + @@ -103,10 +106,16 @@ Form Files + + Form Files + Creaters + + Creaters + \ No newline at end of file diff --git a/NameCreater/customlogo.cpp b/NameCreater/customlogo.cpp index 60efdb7..9a3e825 100644 --- a/NameCreater/customlogo.cpp +++ b/NameCreater/customlogo.cpp @@ -2,6 +2,7 @@ #include "ui_customlogo.h" #include "QFileDialog" + #include #include #include @@ -55,10 +56,7 @@ void CustomLogo::loadBGFromFile() }else{ qDebug()<<"Data content not image format"; } - } - - }; QFileDialog::getOpenFileContent("Image (*.jpg)", fileContentReady); @@ -108,8 +106,15 @@ void CustomLogo::gerneraImageFromList(const QList& nameList, Name_Ty scene.addItem(bg_item); } +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QPixmap _bg = ui->display_label->pixmap()->copy(); +#else + QPixmap _bg = ui->display_label->pixmap().copy(); +#endif // - QGraphicsPixmapItem* name_bgItem = new QGraphicsPixmapItem(*ui->display_label->pixmap()); + + + QGraphicsPixmapItem* name_bgItem = new QGraphicsPixmapItem(_bg); bool rot = (idx == 10 || idx == 11); name_bgItem->setRotation(rot ? -90 : 0); name_bgItem->setPos(BG_POS[idx]); @@ -124,7 +129,6 @@ void CustomLogo::gerneraImageFromList(const QList& nameList, Name_Ty QString name = name_info.name1; int name_len = name.length(); for (int j = 0; j < 1; j++) { // never reverse - int pos_idx = idx * 2 + j; qreal xscale, yscale; xscale = yscale = (j == 1) ? -1 : 1; @@ -154,7 +158,8 @@ void CustomLogo::gerneraImageFromList(const QList& nameList, Name_Ty if (is_export_page || n == nameList.count() - 1) { QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); QString file_name = QString("Signal_%2_%1.jpg").arg(QString::number(export_times + 1), date_str); - saveToImage(file_name, &scene); + //saveToImage(file_name, &scene); + INameCreater().saveToImage(file_name, &scene); export_times++; scene.clear(); @@ -230,35 +235,3 @@ void CustomLogo::onClickedBtn() { } - -void CustomLogo::saveToImage(const QString& filename, QGraphicsScene* scene) -{ - scene->clearSelection(); // Selections would also render to the file - scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents - QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene - image.fill(Qt::transparent); // Start all pixels transparent - int dpm = 300 / 0.0254; // ~300 DPI - image.setDotsPerMeterX(dpm); - image.setDotsPerMeterY(dpm); - - - QPainter painter(&image); - scene->render(&painter); - -#ifdef Q_OS_MAC - QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd"); -#else - QString folder_name = QCoreApplication::applicationDirPath() + "/export_" + QDateTime::currentDateTime().toString("yyyyMMdd"); -#endif - - image.save(filename, "JPEG"); - - QByteArray imageData; - QBuffer buffer(&imageData); - buffer.open(QIODevice::WriteOnly); - QPixmap pixmap = QPixmap::fromImage(image); - pixmap.save(&buffer, "JPEG", 100); // You can also use other formats like "JPEG" or "BMP" - - QFileDialog::saveFileContent(imageData, filename); - -} diff --git a/NameCreater/customlogo.h b/NameCreater/customlogo.h index faddeb1..ccadc82 100644 --- a/NameCreater/customlogo.h +++ b/NameCreater/customlogo.h @@ -2,8 +2,8 @@ #define CUSTOMLOGO_H #include -#include "INameCreater.h" #include "QFont" +#include "INameCreater.h" namespace Ui { class CustomLogo; @@ -24,7 +24,6 @@ private: void loadBGFromFile(); void loadListFromFile(); void gerneraImageFromList(const QList& nameList, Name_Type_e type); - void saveToImage(const QString& filename, QGraphicsScene* scene); protected: QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); diff --git a/NameCreater/customlogo.ui b/NameCreater/customlogo.ui index eb1f860..49eff19 100644 --- a/NameCreater/customlogo.ui +++ b/NameCreater/customlogo.ui @@ -58,6 +58,24 @@ Load List + + + + 370 + 240 + 91 + 51 + + + + + 20 + + + + 雙面 + + diff --git a/NameCreater/customlogo2.cpp b/NameCreater/customlogo2.cpp index e194e00..2af63fc 100644 --- a/NameCreater/customlogo2.cpp +++ b/NameCreater/customlogo2.cpp @@ -23,8 +23,8 @@ static int BG_POS_COUNT = 12; -customlogo2::customlogo2(QFont *font, QWidget *parent) - : QWidget(parent) +customlogo2::customlogo2(QFont *font, QDialog*parent) + : QDialog(parent) , ui(new Ui::customlogo2) , zhFont(font) { @@ -214,7 +214,7 @@ void customlogo2::gerneraImageFromList(const QList& nameList, Name_T if (is_export_page || n == nameList.count() - 1) { QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); QString file_name = QString("Signal_%2_%1.jpg").arg(QString::number(export_times + 1), date_str); - saveToImage(file_name, &scene); + INameCreater().saveToImage(file_name, &scene); export_times++; scene.clear(); @@ -232,39 +232,3 @@ void customlogo2::gerneraImageFromList(const QList& nameList, Name_T msgBox.exec(); } - -void customlogo2::saveToImage(const QString& filename, QGraphicsScene* scene) -{ - scene->clearSelection(); // Selections would also render to the file - scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents - QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene - image.fill(Qt::transparent); // Start all pixels transparent - int dpm = 300 / 0.0254; // ~300 DPI - image.setDotsPerMeterX(dpm); - image.setDotsPerMeterY(dpm); - - - QPainter painter(&image); - scene->render(&painter); - -#ifdef Q_OS_DARWIN - QString APP_PATH = QCoreApplication::applicationDirPath() + "/../../../"; -#else - static QString APP_PATH = ""; -#endif - - QString save_path = APP_PATH.append(filename); - qDebug()<<"save path: "<< save_path; - - image.save(save_path, "JPEG"); - - QByteArray imageData; - QBuffer buffer(&imageData); - buffer.open(QIODevice::WriteOnly); - QPixmap pixmap = QPixmap::fromImage(image); - pixmap.save(&buffer, "JPEG", 100); // You can also use other formats like "JPEG" or "BMP" - - QFileDialog::saveFileContent(imageData, filename); - -} - diff --git a/NameCreater/customlogo2.h b/NameCreater/customlogo2.h index d0c39d0..bafef0a 100644 --- a/NameCreater/customlogo2.h +++ b/NameCreater/customlogo2.h @@ -1,7 +1,7 @@ #ifndef CUSTOMLOGO2_H #define CUSTOMLOGO2_H -#include +#include #include "INameCreater.h" #include "QFont" @@ -9,12 +9,12 @@ namespace Ui { class customlogo2; } -class customlogo2 : public QWidget +class customlogo2 : public QDialog { Q_OBJECT public: - explicit customlogo2(QFont *font ,QWidget *parent = nullptr); + explicit customlogo2(QFont *font , QDialog*parent = nullptr); ~customlogo2(); private: @@ -24,7 +24,7 @@ private: void loadListFromFile(); void gerneraImageFromList(const QList& nameList, Name_Type_e type); - void saveToImage(const QString& filename, QGraphicsScene* scene); + protected: QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); diff --git a/NameCreater/def.h b/NameCreater/def.h index 037fcd1..b23b7d7 100644 --- a/NameCreater/def.h +++ b/NameCreater/def.h @@ -1,9 +1,7 @@ #ifndef DEF_H #define DEF_H -#include - -#define VERSION "v2.8.0" +#define VERSION "v2.8.1"