From de6c1a0a6bcf80c5a2bb4439eedb75054ed1f6c0 Mon Sep 17 00:00:00 2001 From: shouchih_chen Date: Wed, 3 Jul 2024 22:05:43 +0800 Subject: [PATCH] complete to load cht font from url. --- NameCreater/NameCreater.cpp | 51 +++-- NameCreater/NameCreater.h | 4 +- NameCreater/NameCreater.pro | 2 +- NameCreater/NameCreater.pro.user | 343 +++++++++++++++---------------- NameCreater/NameCreater.qrc | 1 - NameCreater/NameCreater.ui | 14 +- NameCreater/NewFiveCreater.h | 3 + NameCreater/def.h | 2 +- 8 files changed, 211 insertions(+), 209 deletions(-) diff --git a/NameCreater/NameCreater.cpp b/NameCreater/NameCreater.cpp index 9ccb137..0d2729d 100644 --- a/NameCreater/NameCreater.cpp +++ b/NameCreater/NameCreater.cpp @@ -19,8 +19,6 @@ #include "HKHolderCreater.h" #include "customlogo.h" - -#define FONT_PATH ":/NameCreater/_exp/TaiwanPearl-SemiBold.ttf" #define TOWEL_FONT_PATH ":/NameCreater/_exp/W1.ttc" #define ENGLISH_FONT_PATH ":/NameCreater/_exp/FontsFree-Net-Acumin-Pro-Semibold.ttf" @@ -29,7 +27,6 @@ #define FONT_CHT_URL "https://bazaar1688.ddns.net/font/TaiwanPearl-SemiBold.ttf" - NameCreater::NameCreater(QWidget *parent) : QMainWindow(parent) { @@ -45,23 +42,22 @@ NameCreater::NameCreater(QWidget *parent) connect(ui.fivesingle_zh_eng_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); connect(ui.customlogo_btn, &QPushButton::released, this , &NameCreater::OnClickedCustomLogoBtn); - QString font_path = FONT_PATH; - QFile font_res(font_path); - if (!font_res.open(QIODevice::ReadOnly)) { - QMessageBox msgBox; - msgBox.setText("Can not load font file!" + font_path); - msgBox.exec(); - font_res.close(); - } - int id = QFontDatabase::addApplicationFontFromData(font_res.readAll()); + connect(&network_mgr, &QNetworkAccessManager::finished, this, &NameCreater::onFontDownloadFinished); + network_mgr.get(QNetworkRequest(QUrl(FONT_CHT_URL))); + +} + +void NameCreater::loadFont(const QByteArray& fontdata){ + + int id = QFontDatabase::addApplicationFontFromData(fontdata); QStringList family_list = QFontDatabase::applicationFontFamilies(id); + qDebug()<<"font family list:" <setFont(tital_font); ui.version_label->setFont(version_font); - ui.version_label->setText(VERSION); + ui.version_label->setText(QString(VERSION).append("/cht font:").append(family_list.at(0))); QList titals = findChildren(QRegularExpression("tital_label")); foreach(auto tital, titals) { tital->setFont(tital_font); } - - - - } + void NameCreater::OnClickedReadBtn() { auto sender =(QPushButton*) QObject::sender(); @@ -163,3 +156,23 @@ void NameCreater::OnClickedCustomLogoBtn() { qDebug()<<"exit event loop"; } + +void NameCreater::onFontDownloadFinished(QNetworkReply *reply){ + + if(reply->error() == QNetworkReply::NoError){ + //do somthine + loadFont(reply->readAll()); + qDebug()<<"Load Font Succeed!"; + + }else{ + + QMessageBox msgBox; + msgBox.setText("Can not load font file!" + reply->errorString()); + msgBox.exec(); + reply->deleteLater(); + + + return ; + } + +} diff --git a/NameCreater/NameCreater.h b/NameCreater/NameCreater.h index f539f97..ff21f95 100644 --- a/NameCreater/NameCreater.h +++ b/NameCreater/NameCreater.h @@ -20,9 +20,11 @@ private: QColor font_color; - + QNetworkAccessManager network_mgr; + void loadFont(const QByteArray& fontdata); private Q_SLOTS: void OnClickedReadBtn(); void OnClickedCustomLogoBtn(); + void onFontDownloadFinished(QNetworkReply *reply); }; diff --git a/NameCreater/NameCreater.pro b/NameCreater/NameCreater.pro index 4ee0e0b..abc5199 100644 --- a/NameCreater/NameCreater.pro +++ b/NameCreater/NameCreater.pro @@ -19,6 +19,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -QMAKE_LFLAGS+= -s TOTAL_MEMORY=67108864 +#QMAKE_LFLAGS+= -s TOTAL_MEMORY=67108864 diff --git a/NameCreater/NameCreater.pro.user b/NameCreater/NameCreater.pro.user index dc147f6..34f271e 100644 --- a/NameCreater/NameCreater.pro.user +++ b/NameCreater/NameCreater.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {4a5c8cc9-7483-402d-a0a2-3701e5257fd0} + {fcddcb90-0e4f-4f41-99d2-8ce9f168d92c} ProjectExplorer.Project.ActiveTarget @@ -54,6 +54,7 @@ *.md, *.MD, Makefile false true + true @@ -70,16 +71,12 @@ 0 true - - -fno-delayed-template-parsing - - true - Builtin.BuildSystem true true Builtin.DefaultTidyAndClazy 4 + true @@ -89,169 +86,18 @@ ProjectExplorer.Project.Target.0 - - WebAssemblyDeviceType - Qt 5.15.2 WebAssembly - Qt 5.15.2 WebAssembly - qt.qt5.5152.wasm_32_kit - 0 - -1 - 0 - - 0 - D:\_develop\_project\NameCreater\build-NameCreater-Qt_5_15_2_WebAssembly-Debug - D:/_develop/_project/NameCreater/build-NameCreater-Qt_5_15_2_WebAssembly-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 - - - D:\_develop\_project\NameCreater\build-NameCreater-Qt_5_15_2_WebAssembly-Release - D:/_develop/_project/NameCreater/build-NameCreater-Qt_5_15_2_WebAssembly-Release - - - true - QtProjectManager.QMakeBuildStep - true - - - - 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 - D:\_develop\_project\NameCreater\build-NameCreater-Qt_5_15_2_WebAssembly-Profile - D:/_develop/_project/NameCreater/build-NameCreater-Qt_5_15_2_WebAssembly-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - - - 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 - true - - NameCreater - WebAssembly.RunConfiguration.EmrunD:/_develop/_project/NameCreater/NameCreater/NameCreater.pro - D:/_develop/_project/NameCreater/NameCreater/NameCreater.pro - false - true - false - true - chrome - - 1 - - - - ProjectExplorer.Project.Target.1 Desktop - Desktop Qt 5.15.2 MSVC2019 64bit - Desktop Qt 5.15.2 MSVC2019 64bit - qt.qt5.5152.win64_msvc2019_64_kit + Desktop Qt 5.15.2 clang 64bit + Desktop Qt 5.15.2 clang 64bit + qt.qt5.5152.clang_64_kit 0 0 0 0 - D:\_develop\_project\NameCreater\build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug - D:/_develop/_project/NameCreater/build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Debug + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Debug true @@ -289,13 +135,13 @@ 2 - D:\_develop\_project\NameCreater\build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Release - D:/_develop/_project/NameCreater/build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Release + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Release + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Release true QtProjectManager.QMakeBuildStep - true + false @@ -330,13 +176,13 @@ 0 - D:\_develop\_project\NameCreater\build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile - D:/_develop/_project/NameCreater/build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Profile + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Profile true QtProjectManager.QMakeBuildStep - true + false @@ -391,14 +237,163 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:D:/_develop/_project/NameCreater/NameCreater/NameCreater.pro - D:/_develop/_project/NameCreater/NameCreater/NameCreater.pro - false + false + Qt4ProjectManager.Qt4RunConfiguration:/Users/shouchih/dev/namecreater/NameCreater/NameCreater.pro + /Users/shouchih/dev/namecreater/NameCreater/NameCreater.pro true true - false true - D:/_develop/_project/NameCreater/build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug + /Users/shouchih/dev/namecreater/build-NameCreater-Desktop_Qt_5_15_2_clang_64bit-Debug/NameCreater.app/Contents/MacOS + + 1 + + + + ProjectExplorer.Project.Target.1 + + WebAssemblyDeviceType + Qt 5.15.2 WebAssembly + Qt 5.15.2 WebAssembly + qt.qt5.5152.wasm_32_kit + 0 + -1 + 0 + + 0 + /Users/shouchih/dev/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Debug + /Users/shouchih/dev/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-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 + + + /Users/shouchih/dev/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Release + /Users/shouchih/dev/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-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 + /Users/shouchih/dev/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Profile + /Users/shouchih/dev/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-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 + true + + 2 + + false + ProjectExplorer.CustomExecutableRunConfiguration + + true + true 1 diff --git a/NameCreater/NameCreater.qrc b/NameCreater/NameCreater.qrc index 7673742..842cef0 100644 --- a/NameCreater/NameCreater.qrc +++ b/NameCreater/NameCreater.qrc @@ -100,6 +100,5 @@ resource/five/kg_3.jpg resource/five/kg_4.jpg resource/five/kg_5.jpg - _exp/TaiwanPearl-SemiBold.ttf diff --git a/NameCreater/NameCreater.ui b/NameCreater/NameCreater.ui index 7567317..57ecd93 100644 --- a/NameCreater/NameCreater.ui +++ b/NameCreater/NameCreater.ui @@ -30,7 +30,7 @@ 10 10 - 181 + 311 16 @@ -38,7 +38,6 @@ Yu Gothic UI 10 - 50 false false @@ -96,7 +95,6 @@ border-color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -120,7 +118,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -144,7 +141,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -220,7 +216,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -244,7 +239,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -280,7 +274,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -316,7 +309,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -339,7 +331,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -375,7 +366,6 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 - 50 false false @@ -415,7 +405,7 @@ color: rgb(250, 250, 250); 0 0 946 - 21 + 24 diff --git a/NameCreater/NewFiveCreater.h b/NameCreater/NewFiveCreater.h index 258594c..76d94bf 100644 --- a/NameCreater/NewFiveCreater.h +++ b/NameCreater/NewFiveCreater.h @@ -12,5 +12,8 @@ protected: public: virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + + + }; diff --git a/NameCreater/def.h b/NameCreater/def.h index 69ff0e4..41990d2 100644 --- a/NameCreater/def.h +++ b/NameCreater/def.h @@ -1,6 +1,6 @@ #ifndef DEF_H #define DEF_H -#define VERSION "v2.6.0" +#define VERSION "v2.7.0" #endif // DEF_H