2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 案例分享:Qt政务标签设计器 标签排版软件定制与打印

案例分享:Qt政务标签设计器 标签排版软件定制与打印

时间:2019-03-14 14:39:18

相关推荐

案例分享:Qt政务标签设计器 标签排版软件定制与打印

若该文为原创文章,转载请注明原文出处

本文章博客地址:https://hpzwl./article/details/119730466

长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)

需求

1.标签设计器;

2.具备文字排版功能;

3.支持六种排版格式;

4.排版后可以输出打印(demo中不包含);

5.排版后可以输出标签的指定协议文本FBD格式;

6.可以调整对应标签的一些位置,x,y,宽度,高度,横向间距,纵向间距;

7.支持排版后的标签预览;

8.标签排版文本错误提示;

Demo v1.6.0

体验下载地址

CSDN(粉丝免积分下载):/download/qq21497936/21109751

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_OBJECTpublic: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_OBJECTpublic: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_OBJECTpublic: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./article/details/119730466

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。