From e14743ca152fbd09814bdea194dba42f767d3562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?shouchih=5Fchen=20=E9=99=B3=E5=AE=88=E5=BF=97?= Date: Tue, 25 Jul 2023 15:33:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=B8=AD=E6=96=87=E6=8E=92?= =?UTF-8?q?=E5=88=97=E5=B0=8D=E9=BD=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NameCreater/HKHolderCreater.cpp | 39 +++++++++++++++++++-------------- NameCreater/NameCreater.cpp | 4 +++- NameCreater/_exp/手帕夾範例.csv | 2 +- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/NameCreater/HKHolderCreater.cpp b/NameCreater/HKHolderCreater.cpp index 917b037..fe70da8 100644 --- a/NameCreater/HKHolderCreater.cpp +++ b/NameCreater/HKHolderCreater.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #define HK_BG_WIDTH 1722 #define HK_BG_HEIGH 2435 @@ -11,9 +12,18 @@ #define MAX_COL_IN_ROW 7 #define MAX_LABEL_IN_PAPER 14 -static qreal row_x_gap = 212; +#define NAME_TWO_WORD_OFFSET 60.0 +#define NAME_THREE_WORD_OFFSET 55.0 + +#define NAME_TWO_EXT_Y 13.0 +#define NAME_TWO_EXT_REV_Y 22.0 + +static qreal row_x_gap = 220; static qreal row_y_offset[] = { 30, 1065 }; +static QPoint NAME_OFFSET_START = QPoint(65, 290); +static QPoint NAME_OFFSET_REVERSE_START = QPoint(125, 713); + HKHolderCreater::HKHolderCreater() : INameCreater() { label_bg_map["b"] = ":/NameCreater/resource/hk_holder/b.jpg"; @@ -89,7 +99,7 @@ QList HKHolderCreater::getNameByFileContent(Name_Type_e type, const 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()) { @@ -110,10 +120,10 @@ void HKHolderCreater::generaImageFromCSV(Name_Type_e type, const QString& filena 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); + QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, HK_BG_WIDTH, HK_BG_HEIGH); + bg_item->setBrush(QBrush(QColor(255, 255, 255))); + //QGraphicsPixmapItem* bg_item = new QGraphicsPixmapItem(QPixmap(":/NameCreater/resource/hk_holder/sample.jpg")); + scene.addItem(bg_item); } @@ -126,18 +136,15 @@ void HKHolderCreater::generaImageFromCSV(Name_Type_e type, const QString& filena 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); + label_item->setOpacity(1.0); 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 two_word_y = (name_word_len == 2) ? NAME_TWO_EXT_Y : 0; + qreal two_word_rev_y = (name_word_len == 2) ? NAME_TWO_EXT_REV_Y : 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++) { @@ -145,16 +152,16 @@ void HKHolderCreater::generaImageFromCSV(Name_Type_e type, const QString& filena 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); + word_item->setPos(label_item->x() + NAME_OFFSET_START.x(), label_item->y() + NAME_OFFSET_START.y() + two_word_y + 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); + word_item->setPos(label_item->x() + NAME_OFFSET_REVERSE_START.x(), label_item->y() + NAME_OFFSET_REVERSE_START.y() - two_word_rev_y - 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"); diff --git a/NameCreater/NameCreater.cpp b/NameCreater/NameCreater.cpp index 55bad57..5f14d8a 100644 --- a/NameCreater/NameCreater.cpp +++ b/NameCreater/NameCreater.cpp @@ -23,7 +23,7 @@ #define ENGLISH_FONT_PATH ":/NameCreater/_exp/FontsFree-Net-Acumin-Pro-Semibold.ttf" #define FONT_SIZE 120 -#define VERSION "v2.1.1" +#define VERSION "v2.2.0" NameCreater::NameCreater(QWidget *parent) @@ -131,6 +131,8 @@ void NameCreater::OnClickedReadBtn() { b.generaImageFromCSV(Name_Type_e::Name_eng, fileName,fileContent,this->font, this->font_color); } if (sender == ui.handkerchief_btn) { + font_color = QColor(0, 0, 0); + font.setPixelSize(55); HKHolderCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); } diff --git a/NameCreater/_exp/手帕夾範例.csv b/NameCreater/_exp/手帕夾範例.csv index 1084487..e401c42 100644 --- a/NameCreater/_exp/手帕夾範例.csv +++ b/NameCreater/_exp/手帕夾範例.csv @@ -1,5 +1,5 @@ name,bg_type -Á¤_¹ä,b +§d¦t°a,b Á¤_¹ä,b2 Á¤_¹ä,g Á¤_¹ä,g2