知识专区
关于我们 产品中心 解决方案 新闻资讯 客户案例 知识专区 售后服务 联系我们
知识专区:案例分享:Qt政务标签设计器,标签排版软件定制与打印
2021-8-20    点击关注我们

本文链接:https://blog.csdn.net/qq21497936/article/details/119730466

本文章博客地址:https://hpzwl.blog.csdn.net/article/details/119730466
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

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


需求

  1.标签设计器;
  2.具备文字排版功能;
  3.支持六种排版格式;
  4.排版后可以输出打印(demo中不包含);
  5.排版后可以输出标签的指定协议文本FBD格式;
  6.可以调整对应标签的一些位置,x,y,宽度,高度,横向间距,纵向间距;
  7.支持排版后的标签预览;
  8.标签排版文本错误提示;


Demo v1.6.0

  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述

体验下载地址

  CSDN(粉丝免积分下载):https://download.csdn.net/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_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/article/details/119730466

阅读:919
手把手教你学会安装虚拟机与linux系统和完美配置
❤️手把手教你学会安装虚拟机与linux系统和完美配置❤️
从苹果 M1 看芯片技术发展趋势
对于开发者来说,今年频频登上科技版头条的新闻莫过于苹果发布的 M1 芯片了,业界首款使用领先的 5nm 技术的 PC 芯片。在苹果 
用一张图说一说 ChatGPT 内部技术工作流程
用一张图说一说 ChatGPT 内部技术工作流程
50 岁的 C 语言,掌控 Windows、Linux、macOS 等操作系统半边天
50 岁的 C 语言,掌控 Windows、Linux、macOS 等操作系统半边天
什么是API?(详细解说)
什么是API?(详细解说)
win10 如何做到 C盘 的绝对干净,所有软件都安装到D盘,C盘只用来存操作系统。
win10 如何做到 C盘 的绝对干净,所有软件都安装到D盘,C盘只用来存操作系统。
七个合法学习黑客技术的网站,让你从萌新成为大佬
七个合法学习黑客技术的网站,让你从萌新成为大佬
有了这7款浏览器插件,浏览器居然“活了”?!
有了这7款浏览器插件,浏览器居然“活了”?!
【腾讯云原生降本增效大讲堂】游戏平台上云是花钱还是省钱
【腾讯云原生降本增效大讲堂】游戏平台上云是花钱还是省钱
❤️五万字《十大排序算法》动图讲解❤️
❤️五万字《十大排序算法》动图讲解❤️
上一篇:❤️使用 HTML、CSS 和 JavaScript 的简单模拟时钟❤️
下一篇:基于STM32设计的掌上游戏机(运行NES游戏模拟器)详细开发过程
关于我们 产品中心 解决方案 新闻资讯 客户案例 知识专区 售后服务 联系我们
我们的联系方式
联系地址:云南省昆明市官渡区永平路188号鑫都韵城写字楼6栋1004号
联系电话:0871-64605728、传真号码:0871-64605728
电子邮箱:19701580@qq.com
点击拨打 0871-64605728 咨询我们
长按指纹即可关注我们
微网站由云港互联设计开发  点击进入
【版权声明】本站部分内容由互联网用户自行发布,著作权或版权归原作者所有。如果侵犯到您的权益请发邮件致info@ynjwz.com,我们会第一时间进行删除并表示歉意。