From b2602b5ef789c462fd8ce326f1175cee730ba595 Mon Sep 17 00:00:00 2001 From: shouchih_chen Date: Sat, 13 May 2023 07:37:05 +0800 Subject: [PATCH] add name type for English name. --- NameCreater/BirthdayCreater.cpp | 6 +- NameCreater/BirthdayCreater.h | 5 +- NameCreater/FiveToSingle.cpp | 4 +- NameCreater/FiveToSingle.h | 2 +- NameCreater/INameCreater.cpp | 20 ++++- NameCreater/INameCreater.h | 15 +++- NameCreater/NameCreater.cpp | 8 +- NameCreater/NameCreater.ui | 143 ++++++++++++++++++++------------ NameCreater/NewFiveCreater.cpp | 6 +- NameCreater/NewFiveCreater.h | 4 +- NameCreater/OldFiveCreater.cpp | 6 +- NameCreater/OldFiveCreater.h | 4 +- NameCreater/TowelCreater.cpp | 6 +- NameCreater/TowelCreater.h | 4 +- 14 files changed, 146 insertions(+), 87 deletions(-) diff --git a/NameCreater/BirthdayCreater.cpp b/NameCreater/BirthdayCreater.cpp index a74e5a3..e7c2a72 100644 --- a/NameCreater/BirthdayCreater.cpp +++ b/NameCreater/BirthdayCreater.cpp @@ -37,7 +37,7 @@ BirthdayCreater::~BirthdayCreater() { } -QList BirthdayCreater::getNameByFileContent(const QByteArray& conetent) +QList BirthdayCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) { QList nameList; @@ -74,11 +74,11 @@ QList BirthdayCreater::getNameByFileContent(const QByteArray& conete return nameList; } -void BirthdayCreater::generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +void BirthdayCreater::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(filecontent); + QList nameList = getNameByFileContent(type, filecontent); if (nameList.isEmpty()) { QMessageBox msgBox; msgBox.setText(QString("Name is empty ! ").append(filename)); diff --git a/NameCreater/BirthdayCreater.h b/NameCreater/BirthdayCreater.h index 0c375bd..e717372 100644 --- a/NameCreater/BirthdayCreater.h +++ b/NameCreater/BirthdayCreater.h @@ -8,9 +8,10 @@ public: ~BirthdayCreater(); protected: - QList getNameByFileContent(const QByteArray& conetent); + QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); public: - virtual void generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + 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/FiveToSingle.cpp b/NameCreater/FiveToSingle.cpp index e1acb24..ad5e127 100644 --- a/NameCreater/FiveToSingle.cpp +++ b/NameCreater/FiveToSingle.cpp @@ -54,11 +54,11 @@ FiveToSingle::~FiveToSingle() { } -void FiveToSingle::generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +void FiveToSingle::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(filecontent); + QList nameList = getNameByFileContent(type, filecontent); if (nameList.isEmpty()) { QMessageBox msgBox; msgBox.setText(QString("Name is empty ! ").append(filename)); diff --git a/NameCreater/FiveToSingle.h b/NameCreater/FiveToSingle.h index 9db8eac..725f71d 100644 --- a/NameCreater/FiveToSingle.h +++ b/NameCreater/FiveToSingle.h @@ -7,7 +7,7 @@ public: ~FiveToSingle(); public: - virtual void generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); }; diff --git a/NameCreater/INameCreater.cpp b/NameCreater/INameCreater.cpp index 9f5d7ec..b799d3d 100644 --- a/NameCreater/INameCreater.cpp +++ b/NameCreater/INameCreater.cpp @@ -53,7 +53,7 @@ void INameCreater::saveToImage(const QString& filename, QGraphicsScene* scene) } -QList INameCreater::getNameByFile(const QString& filename) +QList INameCreater::getNameByFile(Name_Type_e type, const QString& filename) { QList nameList; @@ -110,7 +110,7 @@ QList INameCreater::getNameByFile(const QString& filename) return nameList; } -QList INameCreater::getNameByFileContent(const QByteArray& conetent) +QList INameCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) { QList nameList; QTextCodec* tc = QTextCodec::codecForName("Big5"); @@ -150,6 +150,20 @@ QList INameCreater::getNameByFileContent(const QByteArray& conetent) return nameList; } -void INameCreater::generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +void INameCreater::generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) { } + +int INameCreater::getFontSizebyStr(const QFont& font, int max_font_size,int max_label_width, const QString& str) +{ + QFont _font(font); + int font_size = max_font_size; + while (font_size > 10) { + _font.setPixelSize(max_font_size); + QFontMetrics fm(_font); + if (fm.horizontalAdvance(str) <= max_label_width) break; + font_size--; + } + + return font_size; +} diff --git a/NameCreater/INameCreater.h b/NameCreater/INameCreater.h index f0f1f46..92b85df 100644 --- a/NameCreater/INameCreater.h +++ b/NameCreater/INameCreater.h @@ -15,19 +15,26 @@ struct NameInfo_t { int bg_type; }; - +enum Name_Type_e { + Name_zh = 0, + Name_eng, + Name_zh_eng +}; class INameCreater : public QObject { public: INameCreater(); ~INameCreater(); + protected: void saveToImage(const QString& filename, QGraphicsScene* scene); - QList getNameByFile(const QString& filename); - QList getNameByFileContent(const QByteArray& conetent); + QList getNameByFile(Name_Type_e type, const QString& filename); + QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); - virtual void generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); +private: + int getFontSizebyStr(const QFont& font, int max_font_size, int max_label_width, const QString& str); }; \ No newline at end of file diff --git a/NameCreater/NameCreater.cpp b/NameCreater/NameCreater.cpp index 5a995f4..1ce9482 100644 --- a/NameCreater/NameCreater.cpp +++ b/NameCreater/NameCreater.cpp @@ -98,11 +98,11 @@ void NameCreater::OnClickedReadBtn() { } else { // Use fileName and fileContent - if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(fileName, fileContent, this->font, this->font_color); + if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color); //if(sender == ui.fiveold_btn) OldFiveCreater().generaImageFromCSV(fileName, fileContent, this->font, this->font_color); - if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(fileName, fileContent, this->font, this->font_color); - if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(fileName, fileContent, this->font, this->font_color); - if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(fileName, fileContent, this->font_towel, 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); } diff --git a/NameCreater/NameCreater.ui b/NameCreater/NameCreater.ui index 73cbdff..bc7ff94 100644 --- a/NameCreater/NameCreater.ui +++ b/NameCreater/NameCreater.ui @@ -7,7 +7,7 @@ 0 0 946 - 589 + 817 @@ -60,7 +60,7 @@ 10 40 851 - 441 + 521 @@ -77,6 +77,69 @@ border-color: rgb(255, 255, 255); QFrame::Raised + + + + + 0 + 76 + + + + Open File + + + + + + + + 0 + 76 + + + + Open File + + + + + + + + 0 + 76 + + + + Open File + + + + + + + + Yu Gothic UI + 20 + 50 + false + false + + + + +color: rgb(255, 255, 255); + + + + 生日禮產生器(中/英) + + + Qt::AlignCenter + + + @@ -90,6 +153,29 @@ border-color: rgb(255, 255, 255); + + + + + Yu Gothic UI + 20 + 50 + false + false + + + + color: rgb(255, 255, 255); + + + + 五入組產生器 + + + Qt::AlignCenter + + + @@ -114,29 +200,6 @@ color: rgb(255, 255, 255); - - - - - Yu Gothic UI - 20 - 50 - false - false - - - - color: rgb(255, 255, 255); - - - - 五入組產生器 - - - Qt::AlignCenter - - - @@ -160,19 +223,6 @@ color: rgb(255, 255, 255); - - - - - 0 - 76 - - - - Open File - - - @@ -196,21 +246,8 @@ color: rgb(255, 255, 255); - - - - - 0 - 76 - - - - Open File - - - - - + + 0 diff --git a/NameCreater/NewFiveCreater.cpp b/NameCreater/NewFiveCreater.cpp index d80c49d..fc5c75f 100644 --- a/NameCreater/NewFiveCreater.cpp +++ b/NameCreater/NewFiveCreater.cpp @@ -30,7 +30,7 @@ NewFiveCreater::~NewFiveCreater() { } -QList NewFiveCreater::getNameByFileContent(const QByteArray& conetent) +QList NewFiveCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) { QList nameList; @@ -68,12 +68,12 @@ QList NewFiveCreater::getNameByFileContent(const QByteArray& coneten } -void NewFiveCreater::generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +void NewFiveCreater::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(filecontent); + QList nameList = getNameByFileContent(type, filecontent); if (nameList.isEmpty()) { QMessageBox msgBox; msgBox.setText(QString("Name is empty ! ").append(filename)); diff --git a/NameCreater/NewFiveCreater.h b/NameCreater/NewFiveCreater.h index 8a0e869..258594c 100644 --- a/NameCreater/NewFiveCreater.h +++ b/NameCreater/NewFiveCreater.h @@ -8,9 +8,9 @@ public: ~NewFiveCreater(); protected: - QList getNameByFileContent(const QByteArray& conetent); + QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); public: - virtual void generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); }; diff --git a/NameCreater/OldFiveCreater.cpp b/NameCreater/OldFiveCreater.cpp index b9fa5cd..ba60227 100644 --- a/NameCreater/OldFiveCreater.cpp +++ b/NameCreater/OldFiveCreater.cpp @@ -39,7 +39,7 @@ OldFiveCreater::~OldFiveCreater() { } -QList OldFiveCreater::getNameByFileContent(const QByteArray& conetent) +QList OldFiveCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) { QList nameList; @@ -76,11 +76,11 @@ QList OldFiveCreater::getNameByFileContent(const QByteArray& coneten return nameList; } -void OldFiveCreater::generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +void OldFiveCreater::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(filecontent); + QList nameList = getNameByFileContent(type, filecontent); if (nameList.isEmpty()) { QMessageBox msgBox; msgBox.setText(QString("Name is empty ! ").append(filename)); diff --git a/NameCreater/OldFiveCreater.h b/NameCreater/OldFiveCreater.h index 908656c..e062d7d 100644 --- a/NameCreater/OldFiveCreater.h +++ b/NameCreater/OldFiveCreater.h @@ -8,8 +8,8 @@ public: ~OldFiveCreater(); protected: - QList getNameByFileContent(const QByteArray& conetent); + QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); public: - virtual void generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); }; diff --git a/NameCreater/TowelCreater.cpp b/NameCreater/TowelCreater.cpp index a2aa17e..dc4d2d6 100644 --- a/NameCreater/TowelCreater.cpp +++ b/NameCreater/TowelCreater.cpp @@ -33,7 +33,7 @@ TowelCreater::~TowelCreater() { } -QList TowelCreater::getNameByFileContent(const QByteArray& conetent) +QList TowelCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) { QList nameList; @@ -75,11 +75,11 @@ QList TowelCreater::getNameByFileContent(const QByteArray& conetent) } -void TowelCreater::generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color) +void TowelCreater::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(filecontent); + QList nameList = getNameByFileContent(type, filecontent); if (nameList.isEmpty()) { QMessageBox msgBox; msgBox.setText(QString("Name is empty ! ").append(filename)); diff --git a/NameCreater/TowelCreater.h b/NameCreater/TowelCreater.h index 4548745..f0dec61 100644 --- a/NameCreater/TowelCreater.h +++ b/NameCreater/TowelCreater.h @@ -7,8 +7,8 @@ public: ~TowelCreater(); protected: - QList getNameByFileContent(const QByteArray& conetent); + QList getNameByFileContent(Name_Type_e type, const QByteArray& conetent); public: - virtual void generaImageFromCSV(const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); + virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); };