完成中文排列對齊

This commit is contained in:
shouchih_chen 陳守志 2023-07-25 15:33:48 +08:00
parent 6ea71180c8
commit e14743ca15
3 changed files with 27 additions and 18 deletions

View File

@ -4,6 +4,7 @@
#include <QDebug> #include <QDebug>
#include <QMessageBox> #include <QMessageBox>
#include <QDateTime> #include <QDateTime>
#include <QGraphicsPixmapItem>
#define HK_BG_WIDTH 1722 #define HK_BG_WIDTH 1722
#define HK_BG_HEIGH 2435 #define HK_BG_HEIGH 2435
@ -11,9 +12,18 @@
#define MAX_COL_IN_ROW 7 #define MAX_COL_IN_ROW 7
#define MAX_LABEL_IN_PAPER 14 #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 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() HKHolderCreater::HKHolderCreater() : INameCreater()
{ {
label_bg_map["b"] = ":/NameCreater/resource/hk_holder/b.jpg"; label_bg_map["b"] = ":/NameCreater/resource/hk_holder/b.jpg";
@ -112,7 +122,7 @@ void HKHolderCreater::generaImageFromCSV(Name_Type_e type, const QString& filena
QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, HK_BG_WIDTH, HK_BG_HEIGH); QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, HK_BG_WIDTH, HK_BG_HEIGH);
bg_item->setBrush(QBrush(QColor(255, 255, 255))); bg_item->setBrush(QBrush(QColor(255, 255, 255)));
//QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH)); //QGraphicsPixmapItem* bg_item = new QGraphicsPixmapItem(QPixmap(":/NameCreater/resource/hk_holder/sample.jpg"));
scene.addItem(bg_item); 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]; QString label_rel_path = label_bg_map[name_info.name2];
QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path)); 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->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); 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++) { for (int i = 0; i < 2; i++) {
int name_word_len = name_info.name1.length(); 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; qreal offset_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET : NAME_THREE_WORD_OFFSET;
for (int w = 0; w < name_word_len; w++) { 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->setFont(font);
word_item->setDefaultTextColor(font_color); word_item->setDefaultTextColor(font_color);
if (i == 0) { 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 { else {
word_item->setTransform(QTransform().fromScale(-1, -1)); 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); scene.addItem(word_item);
} }
}*/ }
if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) { if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) {
QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); QString date_str = QDateTime::currentDateTime().toString("MMddhhmm");

View File

@ -23,7 +23,7 @@
#define ENGLISH_FONT_PATH ":/NameCreater/_exp/FontsFree-Net-Acumin-Pro-Semibold.ttf" #define ENGLISH_FONT_PATH ":/NameCreater/_exp/FontsFree-Net-Acumin-Pro-Semibold.ttf"
#define FONT_SIZE 120 #define FONT_SIZE 120
#define VERSION "v2.1.1" #define VERSION "v2.2.0"
NameCreater::NameCreater(QWidget *parent) 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); b.generaImageFromCSV(Name_Type_e::Name_eng, fileName,fileContent,this->font, this->font_color);
} }
if (sender == ui.handkerchief_btn) { 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); HKHolderCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
} }

View File

@ -1,5 +1,5 @@
name,bg_type name,bg_type
СТЄ_Йф,b §d¦t°a,b
СТЄ_Йф,b2 СТЄ_Йф,b2
СТЄ_Йф,g СТЄ_Йф,g
СТЄ_Йф,g2 СТЄ_Йф,g2

1 name bg_type
2 Á¤_¹ä §d¦t°a b
3 Á¤_¹ä b2
4 Á¤_¹ä g
5 Á¤_¹ä g2