需要
1.标签设计器;
2.具备文字排版性能;
3.反对六种排版格局;
4.排版后能够输入打印(demo中不蕴含);
5.排版后能够输入标签的指定协定文本FBD格局;
6.能够调整对应标签的一些地位,x,y,宽度,高度,横向间距,纵向间距;
7.反对排版后的标签预览;
8.标签排版文本谬误提醒;
Demo v1.6.0
在这里插入图片形容
在这里插入图片形容
在这里插入图片形容
在这里插入图片形容
在这里插入图片形容
在这里插入图片形容
在这里插入图片形容
体验下载地址
CSDN(粉丝免积分下载):https://download.csdn.net/dow...
QQ群:1047134658(点击“文件”搜寻“labelDesigner ”,群内与博文同步更新)
模块化
模块化设计构架:
在这里插入图片形容
外围源码头文件
Widget.h
ifndef WIDGET_H
define WIDGET_H
include <QTextCodec>
include <QWidget>
include <QAbstractButton>
include <QFileDialog>
include <QMessageBox>
include "LabelWidget.h"
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);~Widget();
protected:
void initControls();void createLabelWidgets();void updateLabelWidgets();void updateScale();QStringList parseNames(QString content);
protected slots:
void slot_updateScale();void slot_buttonClicked(QAbstractButton *pAbstractButton);
protected:
void resizeEvent(QResizeEvent *event);
private slots:
void on_spinBox_x_valueChanged(int arg1);void on_spinBox_y_valueChanged(int arg1);void on_spinBox_xNumber_valueChanged(int arg1);void on_spinBox_yNumber_valueChanged(int arg1);void on_spinBox_labelWidth_valueChanged(int arg1);void on_spinBox_labelHeight_valueChanged(int arg1);void on_doubleSpinBox_scale_valueChanged(double arg1);void on_spinBox_labelVerticallSpace_valueChanged(int arg1);void on_spinBox_labelHorizalSpace_valueChanged(int arg1);void on_textEdit_names_textChanged();void on_pushButton_createLabel_clicked();void on_pushButton_export_clicked();
private:
Ui::Widget *ui;
private:
QList<LabelWidget *> _listLabelWidget;QStringList _listNames;QStringList _listErrorNames;int _xMM;int _yMM;int _widthMM;int _heightMM;int _widthSpace;int _heightSpace;int _widthNumber;int _heightNumber;bool _firstRotate180;bool _secondRotate180;bool _showFontVertical;int _fontPt;
};
endif // WIDGET_H
ScreenManager.h
ifndef SCREENMANAGER_H
define SCREENMANAGER_H
include <QObject>
class ScreenManager : public QObject
{
Q_OBJECT
public:
explicit ScreenManager(QObject *parent = nullptr);
signals:
public slots:
public:
static float getScreenWidthMM();static float getScreenHeightMM();static float getScreenWidthMM(int width);static float getScreenHeightMM(int height);static int getWidth();static int getHeight();static int getWidth(float widthMM);static int getHeight(float heightMM);
private:
static float inchToMMScale;
};
endif // SCREENMANAGER_H
LabelWidget.h
ifndef LABELWIDGET_H
define LABELWIDGET_H
include <QWidget>
include <QTimer>
include <QtMath>
namespace Ui {
class LabelWidget;
}
class LabelWidget : public QWidget
{
Q_OBJECT
public:
explicit LabelWidget(QWidget *parent = 0);~LabelWidget();
public:
float getXMM() const;float getYMM() const;float getLabelWidthMM() const;float getLabelHeightMM() const;int getVerticalLabelsNumber() const;int getHorizalLabelNumber() const;float getScale() const;float getLabelHorizalSpaceMM() const;float getLabelVerticalSpaceMM() const;QStringList getListName() const;bool getFirstLabelRotate180() const;bool getSecondLabelRotate180() const;int getFontPt() const;bool getShowFontVertical() const;
public:
void setXMM(float xMM);void setYMM(float yMM);void setLabelWidthMM(float labelWidthMM);void setLabelHeightMM(float labelHeightMM);void setVerticalLabelsNumber(int verticalLabelsNumber);void setHorizalLabelNumber(int horizalLabelNumber);void setScale(float scale);void setLabelHorizalSpaceMM(float labelHorizalSpaceMM);void setLabelVerticalSpaceMM(float labelVerticalSpaceMM);void setLabelsNames(QStringList listName);void setFirstLabelRotate180(bool firstLabelRotate180);void setSecondLabelRotate180(bool secondLabelRotate180);void setFontPt(int fontPt);void setShowFontVertical(bool showFontVertical);
protected:
void initControls();void updateSize();
protected slots:
void slot_initScale(); // 用于躲避初始化地位偏差
protected:
void paintEvent(QPaintEvent *event);void resizeEvent(QResizeEvent *event);
protected:
void drawBackground(QPainter *painter);void drawLabelBorder(QPainter *painter);void drawLabel(QPainter *painter);
private:
Ui::LabelWidget *ui;
private:
QColor _backgroundColor;QColor _labelBorderColor;int _labelBorderWidth;float _labelWidthMM;float _labelHeightMM;float _labelHorizalSpaceMM;float _labelVerticalSpaceMM;int _verticalLabelsNumber;int _horizalLabelNumber;float _xMM;float _yMM;float _pageWidthMM;float _pageHeightMM;float _scale;int _x;int _y;int _labelWidth;int _labelHeight;int _pageWidth;int _pageHeight;int _labelHorizalSpace;int _labelVerticalSpace;bool _firstLabelRotate180;bool _secondLabelRotate180;int _fontPt;bool _showFontVertical;QStringList _listName;
};
endif
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/a...