【QT多通道温度助手】UI布局和美化

该项目源程序下载链接:多通道温度助手.rar-C++文档类资源-CSDN下载

1.在已有QT项目中添加多个UI布局界面

1、在工程中右键->添加新文件,按图选择

2、选择窗口部件

3、创建UI控制类

注意上图红框中命名按实际需要定义,否则后期改动要修改UI文件参数

4、修改UI文件,框1是窗口部件父类,框2是UI界面控件控制的类

lay out in a grid

5.添加Scroll Area控件

6.添加Label控件

里面也进行自动排列处理:

在laber中写入温度助手通信格式说明:

发送帧 :从电脑发送数据帧到热控板。
接收帧 :从热控板发送数据帧到电脑。
起始符 : 数据帧的开头字符,固定是0x34。
指令码 : 动作指令 0x01:系统复位; 0x02:热控使能;0x03:热控温度设置;0x04:PID参数设置;0x88:热控板反馈数据。
参数1  : 第一个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数2  : 第二个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数3  : 第三个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数4  : 第四个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数5  : 第五个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数6  : 第六个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数7  : 第七个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数8  : 第八个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数9  : 第九个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数10  : 第十个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数11  : 第十一个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数12  : 第十二个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
参数13  : 第十三个参数值,长度为2个字节的int型数据。如果数据帧不需要使用参数,则使用0x00填充。
校验码 : 累加和校验,将指令码及13个参数共26个字节的数据进行累加,取低8位就是检验码。
结束符 : 数据帧的结束字符,固定为0x2F。

在发送数据的时候注意低位字节在前,高位字节在后,即小端模式发送。
范例:

接收帧: 34 88 08 01 05 01 04 01 04 01 02 01 05 01 06 01 FF 00 03 01 03 01 03 01 04 01 04 01 C5 2F 
解释: 88代表接收数据,0x0108(264)代表26.4度。其余参数以此类推。C5就是前26个字符的累加和。

发送帧1:34 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 2F
解释: 01代表这帧数据是系统复位,其他位用00补齐,01就是前26个字符的累加和。

发送帧2:34 02 10 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 2F 
解释: 02代表这帧数据是热控使能,参数1是16代表总开关,参数2是0代表热控关闭,其他位使用00填充。13就是前26个字符的累加和。

发送帧3:34 03 10 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3B 2F 
解释: 03代表这帧数据是温度设置,参数1是16代表总温度设置,参数2是0x28(40)度,其他位使用00填充。3B就是前26个字符的累加和。

发送帧4:34 04 00 00 50 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A4 2F
解释: 04代表这帧数据是PID参数设置,参数1是00代表总PID参数设置,参数2是0x50(80),参数3是0x00(0),参数3是0x50(80),3B就是前26个字符的累加和。

写入后在scrollArea控件上点击右键选择Lay out -> Lay out in a Grid

7.添加一个表格来展示数据格式

然后双击箭头的位置,我们编辑表格:

8.将指令说明添加到工具栏事件中,即点击就出现这个UI界面。

先在plctempcontrol.h中添加我们设计的ui的头文件

#include "ui_untitled.h"

再在其点击事件中添加显示函数

void PLCTempControl::on_actionHelp_triggered()
{
    QDialog *dialog = new QDialog();
    Ui::Dialog ui;
    ui.setupUi(dialog);
    dialog->setAttribute(Qt::WA_DeleteOnClose); // 关闭的时候delete
    dialog->setWindowTitle("通信协议");
    ui.tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch );// 自适应列宽
    ui.tableWidget->horizontalHeader()->setSectionResizeMode(2,QHeaderView::ResizeToContents );// 适应单元格内容
    ui.tableWidget->horizontalHeader()->setSectionResizeMode(3,QHeaderView::ResizeToContents );// 适应单元格内容
    ui.tableWidget->horizontalHeader()->setSectionResizeMode(4,QHeaderView::ResizeToContents );// 适应单元格内容
    dialog->show();
}

2.文件美化界面

先在plctempcontrol.h中添加读取文件的头文件

#include "qfile.h"

在plctempcontrol.c的初始化文件中加入。

    /* ui初始化 */
    QFile file(":/theme/blackOrange.css");              // QSS文件
    if (!file.open(QFile::ReadOnly)){  // 打开文件
        return;
    }
    QTextStream in(&file);
    in.setCodec("UTF-8");
    QString qss = in.readAll();        // 读取数据
    qApp->setStyleSheet(qss);          // 应用

显示效果如下:

3.发布exe软件

将debug改为release

点击运行会生成一个release文件夹

打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下。

打开之后输入:

cd /d + 将要拷贝文件的地址

例如:

cd /d E:\4.QTproject\4.learnproject\PLCTempControl\PLC温控助手V1.0

然后就进入了输入地址的当前文件夹。

然后在输入 :

windeployqt + 刚刚拷贝的.exe文件名字

例如:

E:\4.QTproject\4.learnproject\PLCTempControl\PLC温控助手V1.0>windeployqt PLCTempControl.exe

按回车之后就会发现QT的执行文件被自动导入该文件夹。

将该文件夹打包即可在另一台电脑运行了。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米杰的声音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值