diff --git a/NameCreater/HKHolderCreater.cpp b/NameCreater/HKHolderCreater.cpp new file mode 100644 index 0000000..a5dcf06 --- /dev/null +++ b/NameCreater/HKHolderCreater.cpp @@ -0,0 +1,302 @@ +#include "HKHolderCreater.h" +#include +#include +#include +#include +#include + +#define HK_BG_WIDTH 1722 +#define HK_BG_HEIGH 2435 + +#define MAX_COL_IN_ROW 7 +#define MAX_LABEL_IN_PAPER 14 + +static qreal row_x_gap = 212; +static qreal row_y_offset[] = { 30, 1065 }; + +HKHolderCreater::HKHolderCreater() : INameCreater() +{ + label_bg_map["b"] = ":/NameCreater/resource/hk_holder/b.jpg"; + label_bg_map["b2"] = ":/NameCreater/resource/hk_holder/b2.jpg"; + label_bg_map["g"] = ":/NameCreater/resource/hk_holder/g.jpg"; + label_bg_map["g2"] = ":/NameCreater/resource/hk_holder/g2.jpg"; + label_bg_map["o"] = ":/NameCreater/resource/hk_holder/o.jpg"; + label_bg_map["p"] = ":/NameCreater/resource/hk_holder/p.jpg"; + label_bg_map["r"] = ":/NameCreater/resource/hk_holder/r.jpg"; + label_bg_map["y"] = ":/NameCreater/resource/hk_holder/y.jpg"; + +} + +HKHolderCreater::~HKHolderCreater() +{ +} + +QList HKHolderCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) +{ + QList nameList; + QTextCodec* tc = QTextCodec::codecForName("Big5"); + QString codec = tc->toUnicode(conetent.data()); + QTextStream stream(&codec); + + int row = 0; + while (!stream.atEnd()) + { + NameInfo_t info; + QString line = stream.readLine(); + QString name_tc = line; + QStringList csvList = name_tc.split(','); + + QString name, eng_name, bg_type; + + switch (type) { + case Name_zh: + name = csvList.at(0); + bg_type = csvList.at(1); + + break; + case Name_zh_eng: + /*name = csvList.at(0); + eng_name = csvList.at(1); + bg_type = csvList.at(2);*/ + + break; + case Name_eng: + //eng_name = csvList.at(0); + //bg_type = csvList.at(1); + default: + break; + + } + + qDebug() << "row :" << row << " " << name << ", eng: " << eng_name << ", bg_type: " << bg_type; + + if (name.compare("name") == 0 || eng_name.compare("eng_name") == 0) { + //pass first line + continue; + } + + info.name1 = name; + info.name_eng = eng_name; + info.name2 = bg_type; + + nameList.append(info); + + row++; + } + return nameList; +} + +void HKHolderCreater::generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +{ + int export_times = 0; + + + QList nameList = getNameByFileContent(type, filecontent); + if (nameList.isEmpty()) { + QMessageBox msgBox; + msgBox.setText(QString("Name is empty ! ").append(filename)); + msgBox.exec(); + } + + QGraphicsScene scene; + scene.setBackgroundBrush(QBrush(QColor(255, 255, 255))); + QGraphicsView view(&scene); + + switch (type) + + { + case Name_zh: + for (int idx = 0; idx < nameList.length(); idx++) { + + if ((idx % MAX_LABEL_IN_PAPER) == 0) { + + QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, HK_BG_WIDTH, HK_BG_HEIGH); + bg_item->setBrush(QBrush(QColor(255, 255, 255))); + //QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH)); + scene.addItem(bg_item); + + } + + int row_idx, col_idx; + row_idx = idx / MAX_COL_IN_ROW; + col_idx = idx % MAX_COL_IN_ROW; + + NameInfo_t name_info = nameList.at(idx); + QString label_rel_path = label_bg_map[name_info.name2]; + QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path)); + label_item->setPos(qreal(90 + col_idx* row_x_gap), row_y_offset[row_idx]); + label_item->setOpacity(1); + scene.addItem(label_item); + + /*int chrismas_y_offset = 0; + if (name_info.name2.compare("co") == 0 || name_info.name2.compare("ol") == 0 || + name_info.name2.compare("st") == 0 || name_info.name2.compare("sn") == 0) { + chrismas_y_offset = 30; + } + + for (int i = 0; i < 2; i++) { + int name_word_len = name_info.name1.length(); + qreal two_word_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET / 2 : 0; + qreal offset_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET : NAME_THREE_WORD_OFFSET; + + for (int w = 0; w < name_word_len; w++) { + QGraphicsTextItem* word_item = new QGraphicsTextItem(name_info.name1.at(w)); + word_item->setFont(font); + word_item->setDefaultTextColor(font_color); + if (i == 0) { + word_item->setPos(label_item->x() + NAME_OFFSET_START.x(), label_item->y() + NAME_OFFSET_START.y() + two_word_y + chrismas_y_offset + offset_y * w); + } + else { + word_item->setTransform(QTransform().fromScale(-1, -1)); + word_item->setPos(label_item->x() + NAME_OFFSET_REVERSE_START.x(), label_item->y() + NAME_OFFSET_REVERSE_START.y() - two_word_y - chrismas_y_offset - offset_y * w); + } + scene.addItem(word_item); + } + + }*/ + + if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) { + QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); + QString file_name = QString("Birthday_%2_%1.jpg").arg(QString::number(export_times + 1), date_str); + saveToImage(file_name, &scene); + export_times++; + + scene.clear(); + } + } + break; + /* + case Name_eng: + for (int idx = 0; idx < nameList.length(); idx++) { + + if ((idx % MAX_LABEL_IN_PAPER) == 0) { + + QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, BG_WIDTH, BG_HEIGHT); + bg_item->setBrush(QBrush(QColor(255, 255, 255))); + //QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH)); + scene.addItem(bg_item); + + } + NameInfo_t name_info = nameList.at(idx); + int col_index = idx % MAX_LABEL_IN_PAPER; + QString label_rel_path = label_bg_map[name_info.name2]; + QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path)); + label_item->setPos(int(LABEL_POS_START.x() + LABEL_POS_X_OFFSET * col_index), int(LABEL_POS_START.y())); + label_item->setOpacity(1); + scene.addItem(label_item); + + int chrismas_y_offset = 0; + if (name_info.name2.compare("co") == 0 || name_info.name2.compare("ol") == 0 || + name_info.name2.compare("st") == 0 || name_info.name2.compare("sn") == 0) { + chrismas_y_offset = 30; + } + + + QFont _new_font = QFont(EnglisthFont()); + _new_font.setWeight(QFont::ExtraLight); + int _new_size = getFontSizebyStr(_new_font, 120, 480, name_info.name_eng); + _new_font.setPixelSize(_new_size); + + for (int i = 0; i < 2; i++) { + qreal dir = (i == 0) ? -1.0 : 1.0; + qreal x_offset = (i == 0) ? 290.0 : 170.0; + qreal y_offset = (i == 0) ? 780.0 : 1580.0; + chrismas_y_offset = (i == 0) ? 1.0 * chrismas_y_offset : -1.0 * chrismas_y_offset; + //add English world + QGraphicsTextItem* eng_word_item = new QGraphicsTextItem(name_info.name_eng); + eng_word_item->setFont(_new_font); + QRectF rect = eng_word_item->boundingRect(); + eng_word_item->setDefaultTextColor(font_color); + + eng_word_item->setRotation(i == 0 ? 90 : -90); + eng_word_item->setPos(label_item->x() + x_offset - rect.height() / 2.0, label_item->y() + y_offset + chrismas_y_offset + (rect.width() / 2 * dir)); + scene.addItem(eng_word_item); + } + + + + if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) { + QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); + QString file_name = QString("Birthday_%2_%1.jpg").arg(QString::number(export_times + 1), date_str); + saveToImage(file_name, &scene); + export_times++; + scene.clear(); + } + } + + + break; + case Name_zh_eng: + for (int idx = 0; idx < nameList.length(); idx++) { + + if ((idx % MAX_LABEL_IN_PAPER) == 0) { + + QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, BG_WIDTH, BG_HEIGHT); + bg_item->setBrush(QBrush(QColor(255, 255, 255))); + //QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH)); + scene.addItem(bg_item); + + } + NameInfo_t name_info = nameList.at(idx); + int col_index = idx % MAX_LABEL_IN_PAPER; + QString label_rel_path = label_bg_map[name_info.name2]; + QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path)); + label_item->setPos(int(LABEL_POS_START.x() + LABEL_POS_X_OFFSET * col_index), int(LABEL_POS_START.y())); + label_item->setOpacity(1); + scene.addItem(label_item); + + int chrismas_y_offset = 0; + if (name_info.name2.compare("co") == 0 || name_info.name2.compare("ol") == 0 || + name_info.name2.compare("st") == 0 || name_info.name2.compare("sn") == 0) { + chrismas_y_offset = 30; + } + + // add ZH word + int name_word_len = name_info.name1.length(); + qreal two_word_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET / 2 : 0; + qreal offset_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET : NAME_THREE_WORD_OFFSET; + + for (int w = 0; w < name_word_len; w++) { + QGraphicsTextItem* word_item = new QGraphicsTextItem(name_info.name1.at(w)); + word_item->setFont(font); + word_item->setDefaultTextColor(font_color); + word_item->setPos(label_item->x() + NAME_OFFSET_START.x(), label_item->y() + NAME_OFFSET_START.y() + two_word_y + chrismas_y_offset + offset_y * w); + scene.addItem(word_item); + } + + //TODO: add English world + QGraphicsTextItem* eng_word_item = new QGraphicsTextItem(name_info.name_eng); + QFont _new_font = QFont(EnglisthFont()); + _new_font.setWeight(QFont::ExtraLight); + int _new_size = getFontSizebyStr(_new_font, 120, 480, name_info.name_eng); + _new_font.setPixelSize(_new_size); + + eng_word_item->setFont(_new_font); + QRectF rect = eng_word_item->boundingRect(); + eng_word_item->setDefaultTextColor(font_color); + + eng_word_item->setRotation(-90); + eng_word_item->setPos(label_item->x() + 170.0 - rect.height() / 2.0, label_item->y() + 1580 - chrismas_y_offset + rect.width() / 2); + scene.addItem(eng_word_item); + + + if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) { + QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); + QString file_name = QString("Birthday_%2_%1.jpg").arg(QString::number(export_times + 1), date_str); + saveToImage(file_name, &scene); + export_times++; + scene.clear(); + } + } + break; + */ + default: + break; + } + + + + QMessageBox msgBox; + msgBox.setText(QString().asprintf("Export Finshed. Count:%d", export_times)); + msgBox.exec(); +} diff --git a/NameCreater/HKHolderCreater.h b/NameCreater/HKHolderCreater.h new file mode 100644 index 0000000..f4e1048 --- /dev/null +++ b/NameCreater/HKHolderCreater.h @@ -0,0 +1,20 @@ +#pragma once +#include "INameCreater.h" +#include +class HKHolderCreater : + public INameCreater +{ +public: + HKHolderCreater(); + ~HKHolderCreater(); + +protected: + QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); +public: + virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + +private: + QMap label_bg_map; + +}; + diff --git a/NameCreater/NameCreater.pro.user b/NameCreater/NameCreater.pro.user index fc67cae..7731aa1 100644 --- a/NameCreater/NameCreater.pro.user +++ b/NameCreater/NameCreater.pro.user @@ -1,417 +1,452 @@ - - - - - - EnvironmentId - {b811b073-5bd9-459e-9aa0-418d2f1f6d39} - - - ProjectExplorer.Project.ActiveTarget - 1 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - false - true - false - 0 - true - true - 0 - 8 - true - false - 1 - true - true - true - *.md, *.MD, Makefile - false - true - true - - - - ProjectExplorer.Project.PluginSettings - - - true - false - true - true - true - true - - - 0 - true - - true - true - Builtin.DefaultTidyAndClazy - 4 - - - - true - - - true - - - - - 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 - /home/shouchih/qt_ws/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Debug - /home/shouchih/qt_ws/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 - - - /home/shouchih/qt_ws/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Release - /home/shouchih/qt_ws/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 - /home/shouchih/qt_ws/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Profile - /home/shouchih/qt_ws/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 - - NameCreater - WebAssembly.RunConfiguration.Emrun/home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro - /home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro - false - true - false - true - firefox - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop - Desktop Qt 5.15.2 GCC 64bit - Desktop Qt 5.15.2 GCC 64bit - qt.qt5.5152.gcc_64_kit - 0 - 0 - 0 - - 0 - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Debug - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_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 - - - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Release - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_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 - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Profile - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-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 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - true - - 2 - - Qt4ProjectManager.Qt4RunConfiguration:/home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro - /home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro - false - true - true - false - true - /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Debug - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - + + + + + + EnvironmentId + {f917f426-b975-46c9-8edb-fd77a95b6be2} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + -fno-delayed-template-parsing + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop Qt 5.15.2 MSVC2019 64bit + Desktop Qt 5.15.2 MSVC2019 64bit + qt.qt5.5152.win64_msvc2019_64_kit + 0 + 0 + 0 + + 0 + D:\_0E\_Private\_Software\namecreater\build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug + D:/_0E/_Private/_Software/namecreater/build-NameCreater-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 + + + D:\_0E\_Private\_Software\namecreater\build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Release + D:/_0E/_Private/_Software/namecreater/build-NameCreater-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 + D:\_0E\_Private\_Software\namecreater\build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Profile + D:/_0E/_Private/_Software/namecreater/build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-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 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:D:/_0E/_Private/_Software/namecreater/NameCreater/NameCreater.pro + D:/_0E/_Private/_Software/namecreater/NameCreater/NameCreater.pro + false + true + true + false + true + D:/_0E/_Private/_Software/namecreater/build-NameCreater-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug + + 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 + D:\_0E\_Private\_Software\namecreater\build-NameCreater-Qt_5_15_2_WebAssembly-Debug + D:/_0E/_Private/_Software/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:\_0E\_Private\_Software\namecreater\build-NameCreater-Qt_5_15_2_WebAssembly-Release + D:/_0E/_Private/_Software/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 + D:\_0E\_Private\_Software\namecreater\build-NameCreater-Qt_5_15_2_WebAssembly-Profile + D:/_0E/_Private/_Software/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 + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + + Launch with emrun + WebAssembly.RunConfiguration.Emrun + + false + true + false + true + firefox + + 1 + + + + ProjectExplorer.Project.TargetCount + 2 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/NameCreater/NameCreater.pro.user.b811b07 b/NameCreater/NameCreater.pro.user.b811b07 new file mode 100644 index 0000000..fc67cae --- /dev/null +++ b/NameCreater/NameCreater.pro.user.b811b07 @@ -0,0 +1,417 @@ + + + + + + EnvironmentId + {b811b073-5bd9-459e-9aa0-418d2f1f6d39} + + + ProjectExplorer.Project.ActiveTarget + 1 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + true + + + + + 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 + /home/shouchih/qt_ws/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Debug + /home/shouchih/qt_ws/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 + + + /home/shouchih/qt_ws/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Release + /home/shouchih/qt_ws/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 + /home/shouchih/qt_ws/namecreater/build-NameCreater-Qt_5_15_2_WebAssembly-Profile + /home/shouchih/qt_ws/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 + + NameCreater + WebAssembly.RunConfiguration.Emrun/home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro + /home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro + false + true + false + true + firefox + + 1 + + + + ProjectExplorer.Project.Target.1 + + Desktop + Desktop Qt 5.15.2 GCC 64bit + Desktop Qt 5.15.2 GCC 64bit + qt.qt5.5152.gcc_64_kit + 0 + 0 + 0 + + 0 + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Debug + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_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 + + + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Release + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_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 + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Profile + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-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 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro + /home/shouchih/qt_ws/namecreater/NameCreater/NameCreater.pro + false + true + true + false + true + /home/shouchih/qt_ws/namecreater/build-NameCreater-Desktop_Qt_5_15_2_GCC_64bit-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 2 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/NameCreater/NameCreater.qrc b/NameCreater/NameCreater.qrc index 8df329f..5458861 100644 --- a/NameCreater/NameCreater.qrc +++ b/NameCreater/NameCreater.qrc @@ -67,5 +67,14 @@ resource/five/ng_4.jpg resource/five/ng_5.jpg _exp/FontsFree-Net-Acumin-Pro-Semibold.ttf + resource/hk_holder/b.jpg + resource/hk_holder/b2.jpg + resource/hk_holder/g.jpg + resource/hk_holder/g2.jpg + resource/hk_holder/o.jpg + resource/hk_holder/p.jpg + resource/hk_holder/r.jpg + resource/hk_holder/sample.jpg + resource/hk_holder/y.jpg diff --git a/NameCreater/NameCreater.ui b/NameCreater/NameCreater.ui index 53073cf..5fd2b98 100644 --- a/NameCreater/NameCreater.ui +++ b/NameCreater/NameCreater.ui @@ -38,6 +38,7 @@ Yu Gothic UI 10 + 50 false false @@ -82,6 +83,7 @@ border-color: rgb(255, 255, 255); Yu Gothic UI 20 + 50 false false @@ -104,6 +106,7 @@ border-color: rgb(255, 255, 255); Yu Gothic UI 20 + 50 false false @@ -140,6 +143,7 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 + 50 false false @@ -163,6 +167,7 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 + 50 false false @@ -237,6 +242,7 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 + 50 false false @@ -259,6 +265,7 @@ color: rgb(255, 255, 255); Yu Gothic UI 20 + 50 false false @@ -289,6 +296,43 @@ color: rgb(255, 255, 255); + + + + + Yu Gothic UI + 20 + 50 + false + false + + + + +color: rgb(250, 150, 150); + + + + 手帕夾產生器 + + + Qt::AlignCenter + + + + + + + + 0 + 76 + + + + Open File + + + @@ -298,7 +342,7 @@ color: rgb(255, 255, 255); 0 0 946 - 22 + 21 diff --git a/NameCreater/NameCreater.vcxproj b/NameCreater/NameCreater.vcxproj index ef87466..493e772 100644 --- a/NameCreater/NameCreater.vcxproj +++ b/NameCreater/NameCreater.vcxproj @@ -179,6 +179,7 @@ + @@ -193,6 +194,7 @@ + diff --git a/NameCreater/NameCreater.vcxproj.filters b/NameCreater/NameCreater.vcxproj.filters index 0eca8fa..9b20b26 100644 --- a/NameCreater/NameCreater.vcxproj.filters +++ b/NameCreater/NameCreater.vcxproj.filters @@ -61,6 +61,9 @@ Creaters + + Source Files + @@ -84,6 +87,9 @@ Creaters + + Header Files + diff --git a/NameCreater/_exp/手帕夾範例.csv b/NameCreater/_exp/手帕夾範例.csv new file mode 100644 index 0000000..1084487 --- /dev/null +++ b/NameCreater/_exp/手帕夾範例.csv @@ -0,0 +1,21 @@ +name,bg_type +Á¤_¹ä,b +Á¤_¹ä,b2 +Á¤_¹ä,g +Á¤_¹ä,g2 +Á¤_¹ä,o +¸â¨°ºÓ,p +¸â¨°ºÓ,r +¸â¨°ºÓ,y +¸â¨°ºÓ,b +¸â¨°ºÓ,b2 +¸â¨°ºÓ,g +³¯§Ó,g2 +³¯¦u§Ó,o +³¯¦u§Ó,p +³¯§Ó,r +§d¨Î¹a,y +§d¨Î¹a,y +§d¹a,y +§d¹a,p +§d¹a,g2 diff --git a/NameCreater/resource/hk_holder/b.jpg b/NameCreater/resource/hk_holder/b.jpg new file mode 100644 index 0000000..daab4c8 Binary files /dev/null and b/NameCreater/resource/hk_holder/b.jpg differ diff --git a/NameCreater/resource/hk_holder/b2.jpg b/NameCreater/resource/hk_holder/b2.jpg new file mode 100644 index 0000000..5d20c52 Binary files /dev/null and b/NameCreater/resource/hk_holder/b2.jpg differ diff --git a/NameCreater/resource/hk_holder/g.jpg b/NameCreater/resource/hk_holder/g.jpg new file mode 100644 index 0000000..0db9473 Binary files /dev/null and b/NameCreater/resource/hk_holder/g.jpg differ diff --git a/NameCreater/resource/hk_holder/g2.jpg b/NameCreater/resource/hk_holder/g2.jpg new file mode 100644 index 0000000..459998c Binary files /dev/null and b/NameCreater/resource/hk_holder/g2.jpg differ diff --git a/NameCreater/resource/hk_holder/o.jpg b/NameCreater/resource/hk_holder/o.jpg new file mode 100644 index 0000000..e84499e Binary files /dev/null and b/NameCreater/resource/hk_holder/o.jpg differ diff --git a/NameCreater/resource/hk_holder/p.jpg b/NameCreater/resource/hk_holder/p.jpg new file mode 100644 index 0000000..e0b1311 Binary files /dev/null and b/NameCreater/resource/hk_holder/p.jpg differ diff --git a/NameCreater/resource/hk_holder/r.jpg b/NameCreater/resource/hk_holder/r.jpg new file mode 100644 index 0000000..0a29e60 Binary files /dev/null and b/NameCreater/resource/hk_holder/r.jpg differ diff --git a/NameCreater/resource/hk_holder/sample.jpg b/NameCreater/resource/hk_holder/sample.jpg new file mode 100644 index 0000000..eb2012a Binary files /dev/null and b/NameCreater/resource/hk_holder/sample.jpg differ diff --git a/NameCreater/resource/hk_holder/y.jpg b/NameCreater/resource/hk_holder/y.jpg new file mode 100644 index 0000000..1f8828c Binary files /dev/null and b/NameCreater/resource/hk_holder/y.jpg differ