一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
03 2024 档案
C++ std::floor和std:ceil简述
摘要:std::floor 和 std::ceil都是对变量进行四舍五入,只不过四舍五入的方向不同。 1: std::floor -->向下取整数 2: std::ceil -->向上取整数: 例如:5.88 std::floor(5.88) = 5; std::ceil(5.88) = 6; 阅读全文
posted @ 2024-03-29 15:13 一杯清酒邀明月 阅读(1059) 评论(0) 推荐(0) 编辑
Qt 大小端字节序转换的方法
摘要:在Qt中,可以使用qToLittleEndian和qToBigEndian两个函数来实现大小端字节序之间的转换。 1.转换为小端字节序: 1 quint32 num = 0x12345678; 2 quint32 littleEndianNum = qToLittleEndian(num); // 阅读全文
posted @ 2024-03-29 15:10 一杯清酒邀明月 阅读(1336) 评论(0) 推荐(0) 编辑
Qt 大小端转换
摘要:大端模式和小端模式是计算机中经常涉及到的两种字节序,也有大端对齐、小端对齐、大尾、小尾等叫法。 一、起源 说起这两种模式,就不得不提一下大端(Big-endian)和小端(Little-endian)这两个英文上的起源。 “endian”一词来源于乔纳森·斯威夫特的小说格列佛游记。Lilliput和 阅读全文
posted @ 2024-03-29 15:09 一杯清酒邀明月 阅读(284) 评论(0) 推荐(0) 编辑
Qt QByteArray中存储的字节顺序转换
摘要:在 QByteArray 中,可以使用 Qt 的函数来实现字节顺序的转换。具体而言,可以使用 qFromBigEndian 和 qFromLittleEndian 函数将大端和小端字节顺序的数据转换为主机字节顺序的数据。同样地,可以使用 qToBigEndian 和 qToLittleEndian  阅读全文
posted @ 2024-03-29 15:07 一杯清酒邀明月 阅读(825) 评论(0) 推荐(0) 编辑
Modbus通讯协议中的四种字节顺序
摘要:国内设备基本上是A B C D顺序,国外设备基本上是B A D C顺序。低位优先字节交换。使用两个寄存器。使用IEEE 754规范,如显示不正常可进行 字节顺序 交换位置即可。如下: Float Big-endian 字节顺序:A B C D Float Little-endian 字节顺序:D C 阅读全文
posted @ 2024-03-29 11:47 一杯清酒邀明月 阅读(674) 评论(0) 推荐(1) 编辑
PLC中的大端小端
摘要:相信大家在阅读有关通讯数据传输、PLC数据存储等技术文档时,经常会碰到“Big-Endian”(大端对齐)与Little-Endian(小端对齐)术语。很多朋友不理解大端和小端模式,本文给大家写一下此知识点。 一、大端与小端之分 在PLC系统中,数据存储在以字节为单元的可寻址存储器中。这些数据一般包 阅读全文
posted @ 2024-03-29 11:45 一杯清酒邀明月 阅读(766) 评论(0) 推荐(0) 编辑
Siemens 西门子 PLC Modbus写入float字节排列
摘要:写保存寄存器功能码16示意: 在西门子PLC中,实数,float,的保存方式遵循“高字节低地址,低字节高地址”的方式。 假设使用16功能码向PLC的40005写入一个float,先利用BitConverter.GetBytes(f)得到要写的float的byte[] A 。根据PLC中的存储方式,要 阅读全文
posted @ 2024-03-29 11:42 一杯清酒邀明月 阅读(342) 评论(0) 推荐(0) 编辑
C++ bitset
摘要:bitset的定义及概念 bitset存储二进制数位。 bitset就像一个bool类型的数组一样,但是有空间优化——bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一。 bitset中的每个元素都能单独被访问,例如对于一个叫做foo的bitset,表达式foo[3 阅读全文
posted @ 2024-03-26 11:52 一杯清酒邀明月 阅读(32) 评论(0) 推荐(0) 编辑
C++ std::reverse函数
摘要:函数原型,定义 std::reverse 定义于头文件 <algorithm> 1 (1) 2 template< class BidirIt > 3 void reverse( BidirIt first, BidirIt last );(C++20 前) 4 5 template< class 阅读全文
posted @ 2024-03-26 11:49 一杯清酒邀明月 阅读(202) 评论(0) 推荐(0) 编辑
C++11标准模板(STL) 算法(std::reverse)
摘要:定义于头文件 <algorithm> 算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。注意范围定义为 [first, last) ,其中 last 指代要查询或修改的最后元素的后一个元素。 逆转范围中的元素顺序 std::reverse 1) 反转 [first, la 阅读全文
posted @ 2024-03-26 11:47 一杯清酒邀明月 阅读(346) 评论(0) 推荐(0) 编辑
Qt 检查int某一位数据是否为1
摘要:1 #include <QCoreApplication> 2 #include <QString> 3 4 int main(int argc, char *argv[]) 5 { 6 QCoreApplication a(argc, argv); 7 8 int number = 123; // 阅读全文
posted @ 2024-03-26 09:37 一杯清酒邀明月 阅读(77) 评论(0) 推荐(0) 编辑
Qt QPolarChart极坐标图(阿基米德线、四叶曲线、六叶花瓣、三叶花瓣、心形曲线)
摘要:QChart还有专门画极坐标的类QPolarChart,它的界面是一个圆盘。注意在使用之前,包括命名空间QT_CHARTS_USE_NAMESPACE,.pro文件中也要增加QT += charts. 1 #include <QApplication> 2 #include <QDebug> 3 # 阅读全文
posted @ 2024-03-21 16:50 一杯清酒邀明月 阅读(714) 评论(0) 推荐(0) 编辑
Qt UI项目参考
摘要:QtFluentDesign-main 原始界面: 应用了Fluent风格: Navigation-Bar-Office-Style-Tab-Bar-master 侧边栏展开: 侧边栏折叠: qt-material-widgets-master qt-UI-master [and] QSSHub-m 阅读全文
posted @ 2024-03-19 15:03 一杯清酒邀明月 阅读(149) 评论(0) 推荐(0) 编辑
Qt 编译qt-material-widgets皮肤的方法
摘要:编译qt-material-widgets皮肤的方法 首先qt-material-widgets的源代码直接拉下来是无法编译的,我们只能根据报错一步步寻找如何编译。 1.必须先编译components项目得到lib文件 2.然后编译examples,但是发现编译失败 3.因为在examples,pr 阅读全文
posted @ 2024-03-19 14:08 一杯清酒邀明月 阅读(274) 评论(0) 推荐(0) 编辑
Qt QTableWidget控件设置表头等宽
摘要:ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); 阅读全文
posted @ 2024-03-18 14:49 一杯清酒邀明月 阅读(214) 评论(0) 推荐(0) 编辑
Qt QScrollArea滚动条不出现问题
摘要:问题 在做仿B站标签创建框时候,用到了ScrollArea,平时这个控件很少用,所以这次使用时候又遇到了滚动问题。我直接往scroll里丢了一个layout,但是无论我layout怎么撑大,scroll始终没有出现滚动条。所以我试着打印scroll内部的widget的size,结果直接报错。 1 Q 阅读全文
posted @ 2024-03-18 14:29 一杯清酒邀明月 阅读(151) 评论(0) 推荐(0) 编辑
Qt 布局中控件重叠、挤压的解决方法
摘要:问题描述: 在Qt Designer中设计布局时,对所有控件使用QGridLayout、QHBoxLayout或QVBoxLayout布局设置。可以正常预览(Preview),但C++编译后,所有控件挤到一起,布局设置失效。 问题解析: 预览时正常,说明不是Qt的问题,应该与C++代码有关。 问题解 阅读全文
posted @ 2024-03-18 14:27 一杯清酒邀明月 阅读(740) 评论(0) 推荐(0) 编辑
Qt QLable 字符过长省略
摘要:前言: 项目中常用到字符过长问题,Qt默认的省略并不好用,不是自己想要的; QFontMetri 可使用 QFontMetri 当text的像素宽度超过width,将返回字符串的一个省略版本取决于mode。否则将返回原字符串; mode: 1 enum TextElideMode { 2 Elide 阅读全文
posted @ 2024-03-18 13:13 一杯清酒邀明月 阅读(77) 评论(0) 推荐(0) 编辑
Qt QTableWidget 设置列宽行高大小的几种方式及其他常用属性设置
摘要:效果: 1.列宽、行高自动分配 1 //列宽自动分配 2 tableWidget.horizontalHeader().sectionResizeMode(QHeaderView::Stretch) 3 //行高自动分配 4 tableWidget.verticalHeader().SectionR 阅读全文
posted @ 2024-03-18 13:11 一杯清酒邀明月 阅读(4141) 评论(0) 推荐(0) 编辑
Qt QTableView、QTableWidget设置表头
摘要:以下是两个设置表头的不同方法:QTableWidget: 1 //设置表头 2 QStringList heardList;//表头 3 heardList << QString::fromLocal8Bit("接收")<<QString::fromLocal8Bit("发送"); 4 ui.tab 阅读全文
posted @ 2024-03-18 09:59 一杯清酒邀明月 阅读(1148) 评论(0) 推荐(0) 编辑
Qt QTableView和QTableWidget之间的联系 和 区别?什么时候该用QTableView,什么时候该用QTableWidget?
摘要:QTableView 和 QTableWidget 是 Qt 中用于显示和编辑表格数据的两个不同的部件,它们之间存在一些重要的区别: 一、主要区别是:QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWidget则只能使用 阅读全文
posted @ 2024-03-18 09:50 一杯清酒邀明月 阅读(861) 评论(0) 推荐(0) 编辑
Qt QCheckBox设置复选框的大小
摘要:Qt设计QCheckBox样式表 QCheckBox的各部分代表的样式表 1 QCheckBox 2 { 3 background-color: rgb(85, 170, 255); 4 color: yellow; 5 } 6 7 QCheckox::indicator:unchecked 8 { 阅读全文
posted @ 2024-03-15 19:38 一杯清酒邀明月 阅读(726) 评论(0) 推荐(0) 编辑
Qt QtCharts给QChartView换肤,换背景色添加背景图片
摘要:换色 setBackgroundBrush这种接口可以设置QChartView 背景色 首先,给QChart类去掉背景渲染: 换肤 1 QChart *chart = new QChart(); 2 chart->setTheme(QChart::ChartThemeLight); 这里chart是 阅读全文
posted @ 2024-03-15 19:15 一杯清酒邀明月 阅读(540) 评论(0) 推荐(0) 编辑
QT QChart去掉边缘留白区域
摘要:QChart默认会留白、端点处圆形化处理,需要人手修改 1 chart->layout()->setContentsMargins(0, 0, 0, 0); 2 chart->setBackgroundRoundness(0); 修改后的效果 阅读全文
posted @ 2024-03-15 19:08 一杯清酒邀明月 阅读(136) 评论(0) 推荐(0) 编辑
Qt Charts 自定义样式
摘要:Qt Charts是Qt框架中用于创建图表和图形可视化的模块,它提供了一些内置的图表类型,如折线图、柱状图、饼图等。如果你想要自定义Qt Charts中图表的样式,你可以使用一些方法来实现。 以下是一些自定义Qt Charts样式的方法: 1、使用QChart的样式属性: Qt Charts中的QC 阅读全文
posted @ 2024-03-15 19:02 一杯清酒邀明月 阅读(425) 评论(0) 推荐(0) 编辑
Qt 工具盒类实现QQ界面QToolBox
摘要:实例:MyQQ界面 新建:Qt Widgets Application 项目名称:MyQQ 类名:Dialog 基类:QDialog 不选择“创建界面” 代码及详细注释如下: 【main.cpp】 1 #include "dialog.h" //使用哪个类就必须把包含该类的头文件引用过来(*.h文件 阅读全文
posted @ 2024-03-15 18:45 一杯清酒邀明月 阅读(69) 评论(0) 推荐(0) 编辑
Qt QToolButton设置icon与字体居中
摘要:目的 设置QToolButton icon 与 字体 居中显示, 网上有挺多文章说明的, 有些我设置了无效, 我亲自测试了下, 如下是有效果的 1 QToolButton{ 2 color: #b9b9b9; 3 font-size: 12px; 4 font-weight: normal; 5 b 阅读全文
posted @ 2024-03-15 18:41 一杯清酒邀明月 阅读(1157) 评论(0) 推荐(0) 编辑
Qt QToolBox QSS设置Tab高度
摘要:在网上百度了很多,qss都无法实现QToolBox样式高度,后来查看了源码,经过测试终于实现。 首先分析不能实现的原因: 在QToolBox内部实现时,内部封装了一个私有按钮(QToolBoxButton),这个按钮就是QToolBox的tab按钮,在addItem时内部单独存储了QWidget和Q 阅读全文
posted @ 2024-03-15 17:30 一杯清酒邀明月 阅读(195) 评论(0) 推荐(0) 编辑
Qt 两种方法解决Qt使用qss对QWidget无效的问题
摘要:方法一 将属性“Qt::WA_StyledBackground”设置为“true”。 setAttribute(Qt::WA_StyledBackground, true); 方法二 当自定义界面类继承QWidget后,qss样式表对其无效的情况下,需要重写paintEvent函数。 1 void 阅读全文
posted @ 2024-03-15 15:34 一杯清酒邀明月 阅读(349) 评论(0) 推荐(0) 编辑
Qt qss如何设置字体大小
摘要:在 Qt 中,可以使用 QSS(Qt Style Sheets)来设置字体大小。在 QSS 中,可以使用 `font-size` 属性来设置字体的大小。 以下是一个示例代码,演示如何使用 QSS 设置字体大小: 1 #include <QApplication> 2 #include <QPushB 阅读全文
posted @ 2024-03-15 10:10 一杯清酒邀明月 阅读(696) 评论(0) 推荐(0) 编辑
Qt .pro文件详解
摘要:一、.pro文件内容解释 .pro文件是qmake用来生成makefile文件的中间文件。新建简单Qt工程,默认生成 .pro文件内容如下,解释见注释: 1 # [QT+= ]语法,定义该工程包含的Qt模块 2 QT += core gui 3 # 由于Qt5将widgets模块从gui模块独立出来 阅读全文
posted @ 2024-03-15 09:59 一杯清酒邀明月 阅读(575) 评论(0) 推荐(0) 编辑
Qt qrc资源文件介绍与使用
摘要:Qt工程分组中,除了Headers、Sources、Forms外,还有一个文件夹Resources,只有当工程中有图片、音频等资源文件时才会用到。 首先将资源文件存放到工程目录下的文件夹中,然后添加.qrc文件,方法如下: 在工程目录右键–>选择Add New 选择Qt–>Qt Resource F 阅读全文
posted @ 2024-03-15 09:56 一杯清酒邀明月 阅读(2121) 评论(0) 推荐(1) 编辑
C++ error C2143: 语法错误: 缺少“;”(在“*”的前面)
摘要:error C2143编译错误 但是,我在官网的例子上没有找到我所遇见的问题! 在此记录一下,问题代码如下: 1 class testA1; 2 class workclass 3 { 4 public: 5 explicit workclass(); 6 virtual ~workclass(); 阅读全文
posted @ 2024-03-14 19:49 一杯清酒邀明月 阅读(753) 评论(0) 推荐(1) 编辑
Qt TCP (小型聊天窗口)
摘要:实现的具体功能为: 服务器端需要主动监听,可以主动断开连接,可以发送信息给客户端 客户端需要输入主机,端口号,需要主动连接,可以主动断开连接,可以发送信息给服务器端 服务器端和客户端都能看到聊天记录 服务器端的搭建: 创建一个TCP_Server项目 1.首先在.Pro文件中添加: QT+=netw 阅读全文
posted @ 2024-03-14 19:22 一杯清酒邀明月 阅读(108) 评论(0) 推荐(0) 编辑
Qt TCP通信客户端断开连接有哪些方法
摘要:在QT中,可以使用以下方法来处理TCP通信客户端断开连接的情况: 使用QAbstractSocket::disconnected信号:当客户端与服务器断开连接时,该信号会被触发。你可以连接这个信号到一个槽函数,在槽函数中处理断开连接的逻辑。 QObject::connect(socket, &QTc 阅读全文
posted @ 2024-03-14 19:19 一杯清酒邀明月 阅读(614) 评论(0) 推荐(0) 编辑
Qt TcpSocket的掉线解决方法
摘要:1、 tcpip协议 没什么好说的,号称保证传输准确可靠,使命必达。协议很大一坨,实际应用上用得上的很少。 2 、问题所在 在使用tcp协议跟服务器连接后(分别测试过windows系统,ubuntu系统 单片机带tcpip协议的通讯模块)都发现不能及时反馈或反馈 网络已断;(在同一个局域网内和公共网 阅读全文
posted @ 2024-03-14 19:17 一杯清酒邀明月 阅读(235) 评论(0) 推荐(0) 编辑
Qt 解决:QWidget: Must construct a QApplication before a QWidget
摘要:在调试vlc-qt的examples工程时,遇到编译报错“QWidget: Must construct a QApplication before a QWidget” 根据字面理解应该是,创建窗体前应该必须先构造一个QApplication。网上很多人也遇到过这样的问题,也确实是这个原因,如下: 阅读全文
posted @ 2024-03-14 15:43 一杯清酒邀明月 阅读(322) 评论(0) 推荐(0) 编辑
Qt "QWidget: Must construct a QApplication before a QWidget"错误
摘要:问题 该错误信息表示在创建 QWidget(窗口部件)之前必须先创建 QApplication(应用程序)。这是因为 QApplication 在创建 QWidget 之前会进行一些初始化操作,确保正确运行应用程序。 要解决这个错误,您需要在创建 QWidget 之前先创建 QApplication 阅读全文
posted @ 2024-03-14 15:40 一杯清酒邀明月 阅读(1715) 评论(0) 推荐(0) 编辑
Qt QWidget Must construct a QApplication before a QWidget
摘要:1,有些QT写的PC程序在运行的时候,会弹出下图所示的错误提示框 2、原因是因为,在点击程序的关闭的时候,有其它的窗口没有关闭,再次打开造成的,如下图所示,可能的原因是程序启动后,在任务栏在两个图标 3、如下图所示,用鼠标点击关闭其中一个窗口,另一个窗口并没有关闭 4、当你再次打开同一个程序的时候就 阅读全文
posted @ 2024-03-14 14:52 一杯清酒邀明月 阅读(105) 评论(0) 推荐(0) 编辑
Qt QObject::killTimer: timers cannot be stopped from another thread
摘要:QObject::killTimer: timers cannot be stopped from another thread 产生原因 1 定时器的事件处理所处的线程和调用定时器操作(方法)的线程不是同一个线程。 2 可以通过 qDebug() << QThread::currentThread 阅读全文
posted @ 2024-03-14 14:27 一杯清酒邀明月 阅读(919) 评论(0) 推荐(0) 编辑
Qt killtimer 析构函数 Error: timer id is not valid for object timer has not been killed
摘要:析构函数中不能用KillTimer, 原因:在析构函数中窗口已经不存在,所以KillTimer函数已经没有了窗口句柄,当然会出错 1 A::~A() 2 { 3 killTimer(timerId); 4 } 阅读全文
posted @ 2024-03-14 14:24 一杯清酒邀明月 阅读(251) 评论(0) 推荐(0) 编辑
Qt 报错: QWidget: Must construct a QApplication before a QWidget
摘要:最近遇到一个问题,程序编译时出现报错: Must construct a QApplication before a QWidget。我的main.cpp有这样的代码 1 int main(int argc, char *argv[]) 2 { 3 QApplication a(argc, argv 阅读全文
posted @ 2024-03-14 13:56 一杯清酒邀明月 阅读(91) 评论(0) 推荐(0) 编辑
Qt QWidget: Must construct a QApplication before a QWidget
摘要:在使用UI的 qwidget之前都必须先构造一个QApplication实例,这是断言的意思。 错误的可能是在哪个类中采彩用了静态的(static)的qwidge域或其子类,因为静态和全局对象进入main函数之前就产生了,所以早于main函数里的qapplication日对象,所以出现了此断言错误。 阅读全文
posted @ 2024-03-14 13:55 一杯清酒邀明月 阅读(533) 评论(0) 推荐(0) 编辑
Qt QToolBox 的常用方法
摘要:在界面上拉一个 Tool Box 控件,和三个按钮控件: 代码如下: 1 #include "widget.h" 2 #include "ui_widget.h" 3 #include <QGroupBox> 4 #include <QDebug> 5 #include <QMessageBox> 阅读全文
posted @ 2024-03-14 13:43 一杯清酒邀明月 阅读(387) 评论(0) 推荐(0) 编辑
Qt QToolBox tab 文字居中
摘要:背景: 在利用QToolBox实现一个简单的抽屉控件 / 导航控件时,发现QToolBox::tab的标题总是居左。尝试使用text-align属性、subcontrol-xxx属性都不起作用。 解决办法: 利用padding属性进行"硬编码"。 代码片段如下: 1 //当前窗口的宽度,其中 2 / 阅读全文
posted @ 2024-03-14 11:57 一杯清酒邀明月 阅读(143) 评论(0) 推荐(0) 编辑
Qt5.12配置OpenCV教程
摘要:在开发图像处理和计算机视觉应用时,QT和OpenCV是两个不可或缺的工具。QT为我们提供了丰富的图形界面设计功能,而OpenCV则提供了强大的图像处理算法。那么,如何将这两者完美结合呢?本文将为你详细解析QT5.12与OpenCV的配置过程,让你轻松上手! 一、软件下载 1、QT 5.12.9 下载 阅读全文
posted @ 2024-03-13 13:02 一杯清酒邀明月 阅读(4933) 评论(0) 推荐(1) 编辑
Qt 大小端字节序的处理
摘要:1、Endian Order 什么是大小端字节序(Endian Order)?以四字节十六进制整型数0x12345678为例,按照书写习惯,从左到右,高位在前,低位在后,我们称0x12为最高有效字节,0x78为最低有效字节,在存储这个数字时,需要四字节的地址空间,比如说从0x00到0x03,地址空间 阅读全文
posted @ 2024-03-13 09:15 一杯清酒邀明月 阅读(408) 评论(0) 推荐(0) 编辑
Qt 数据流QDataStream大少端设置
摘要:1 //大端格式,高字节在前 2 QDataStream out(&outData,QIODevice::ReadWrite); 3 out.setByteOrder(QDataStream::BigEndian); 4 5 6 //小端格式,低字节在前 7 QDataStream out(&out 阅读全文
posted @ 2024-03-13 09:08 一杯清酒邀明月 阅读(210) 评论(0) 推荐(0) 编辑
Qt QTextStream 类(文本流)和 QDataStream 类(数据流)
摘要:一、二者区别 (1)QTextStream 类:用于对数据进行文本格式的读/写操作,可在 QString、QIODevice或 QByteArray 上运行,比如把数据输出到 QString、QIODevice 或 QByteArray 对象上,或进行相反的操作。 (2)QDataStream 类: 阅读全文
posted @ 2024-03-13 09:07 一杯清酒邀明月 阅读(849) 评论(0) 推荐(0) 编辑
Qt 大端模式、小端模式及其转换
摘要:大端模式和小端模式是计算机中经常涉及到的两种字节序,也有大端对齐、小端对齐、大尾、小尾等叫法。 一、起源 说起这两种模式,就不得不提一下大端(Big-endian)和小端(Little-endian)这两个英文上的起源。 “endian”一词来源于乔纳森·斯威夫特的小说格列佛游记。Lilliput和 阅读全文
posted @ 2024-03-13 09:00 一杯清酒邀明月 阅读(621) 评论(0) 推荐(0) 编辑
Qt QByteArray与int、float、vector互转
摘要:QByteArray的转换一般在串口通信中常用,将int、float、double转换为4个字节的数组(如255 -> [0,0,0,255],本文章一律用10进制表示),或将4个字节的数组转换为int、float、double(如[0,0,0,255] -> 255)。在QT界面中的使用流程,笔者 阅读全文
posted @ 2024-03-12 17:11 一杯清酒邀明月 阅读(2072) 评论(0) 推荐(0) 编辑
Qt QTextEdit添加文字的方式
摘要:1.append 添加方式,在文本内容后面添加新的文本内容 2.insertText添加方式,可以在textEdit的任何方式添加文本 效果和代码 1 #include "widget.h" 2 #include "ui_widget.h" 3 #include <QPalette> 4 #incl 阅读全文
posted @ 2024-03-12 15:23 一杯清酒邀明月 阅读(671) 评论(0) 推荐(0) 编辑
Qt 十六进制与浮点数相互转换
摘要:浮点数转十六进制 1 QString strFloat = ui.float_six1->text(); 2 float f = strFloat.toFloat(); 3 int i = *((int *)&f); 4 QString float_str = QString("%1").arg(i 阅读全文
posted @ 2024-03-12 14:11 一杯清酒邀明月 阅读(662) 评论(0) 推荐(0) 编辑
Qt float和QByteArray相互转换
摘要:核心:使用C++的memcpy()函数。 QByteArray转化为float数组 1 QByteArray testArraySe; 2 float testArrayRe[10]; 3 memcpy(&testArrayRe, testArraySe, sizeof(testArrayRe)); 阅读全文
posted @ 2024-03-12 14:11 一杯清酒邀明月 阅读(243) 评论(0) 推荐(0) 编辑
Qt quint16 高低字节 quint8
摘要:在C++中,将一个quint16(即无符号16位整数)拆分成高字节和低字节可以通过位运算来完成。quint16通常是通过Qt的数据类型quint16来表示的。 以下是一个示例代码,演示如何将quint16拆分成高低字节: 1 #include <QtGlobal> 2 #include <iostr 阅读全文
posted @ 2024-03-12 09:41 一杯清酒邀明月 阅读(489) 评论(0) 推荐(0) 编辑
Qt 常用数据类型转换
摘要:1、int转QString quint8转QString 1 quint8 k = 77; 2 QString str_1; 3 str_1 = QString::number(k, 10); 4 qDebug() << str_1; // "77" 5 QString str_2 = QStrin 阅读全文
posted @ 2024-03-11 19:30 一杯清酒邀明月 阅读(426) 评论(0) 推荐(0) 编辑
Qt 将16进制的内容的QString字符串转为QByteArray数组
摘要:1.QString存储十六进制内容 我要发送的十六进制内容是 01 05 04 01 00将其储存在QString字符串中 1 QString str; 2 str = "0105040100"; 2.核心语句 将两位的字符串转换为16进制的Int型数字,然后通过强制类型转换成char类型的字符。( 阅读全文
posted @ 2024-03-11 19:27 一杯清酒邀明月 阅读(880) 评论(0) 推荐(0) 编辑
ChatGPT 发送消息没有反应,手把手教你解决
摘要:今天照常使用ChatGPT来帮忙码代码,结果发现发出去的消息完全没有反应,即不给我处理,也没有抱任何的错误,按浏览器刷新,看起来很正常,可以查看历史对话,但是再次尝试还是一样的没反应。 开始还以为是账号被封了,但是经过研究分析,发现出现这个问题的原因,应该是点击了登录后顶部的弹窗邀请,[加入alph 阅读全文
posted @ 2024-03-11 13:45 一杯清酒邀明月 阅读(2133) 评论(0) 推荐(0) 编辑
ChatGPT 发送消息后无响应,三个办法教你解决
摘要:问题复现 1.给ChatGPT发送消息没有任何反应 2.浏览器开发者工具发现很多如下错误 解决办法 方法一:清除浏览器缓存 清除浏览器缓存这个方法适合新手,也是最简单的办法,清除浏览器缓存后重新登录账号即可恢复正常使用。 方法二:清除浏览器本地缓存数据 这个方法比较专业,适合开发人员使用,以Chro 阅读全文
posted @ 2024-03-11 13:43 一杯清酒邀明月 阅读(1374) 评论(0) 推荐(0) 编辑
ModbusTCP协议简介与编程流程图
摘要:本文主要目的是为了写一个简单的ModbusTCP服务器-客户端程序而记录的知识点,里面包含了编程所需要的必要背景知识和协议解析流程图。 Modbus基本数据类型 Modbus有四种基本数据类型: 离散量输入:客户端只能读取它,由服务器提供,占1个比特位,可以传输现实中的开关量输入,比如接近开关的通断 阅读全文
posted @ 2024-03-09 16:34 一杯清酒邀明月 阅读(550) 评论(0) 推荐(2) 编辑
Qt 使用第三方libmodbus库实现Modbus通讯
摘要:之前发表的Modbus通讯程序使用了QT自带的Modbus库,由于QT自带库的数据响应使用的是信号和槽来实现的,所以在一些读写频率较高的场景下,会引发很多异常问题,此篇文章使用C语言写的第三方Modbus库来实现modbus通讯。 经程序运行测试,调用该库进行modbus通讯完虐QT自带mosbus 阅读全文
posted @ 2024-03-09 15:38 一杯清酒邀明月 阅读(3032) 评论(0) 推荐(1) 编辑
Qt ModbusTCP通讯
摘要:前言 Modbus在工业控制中的应用非常多,由于其免费使用加上一定的历史环境,Modbus在PLC上的通讯应用非常多,本文主要介绍Mosbus TCP master(主站)的实现。 一、关于Modbus Modbus是由MODICON公司开发的一种工业现场总线协议标准,随后施耐德推出了基于TCP/I 阅读全文
posted @ 2024-03-09 15:32 一杯清酒邀明月 阅读(1943) 评论(0) 推荐(0) 编辑
Qt 基于QTcpSocket的ModbusTCP协议
摘要:一、编写缘由1.发现问题 最近项目上要把之前的modbus RTU改为TCP形式,因此之前的modbus通讯线程得重构,一开始当然是使用Qt自带的QModbusTcpClient类,很快就重构好线程,读取数据没有问题,但是只要一发送写数据请求,整个tcp连接就会断开,做了很多尝试,排除了从站的问题, 阅读全文
posted @ 2024-03-09 15:27 一杯清酒邀明月 阅读(759) 评论(0) 推荐(0) 编辑
ModbusTCP协议报文详细分析
摘要:ModbusTCP与ModbusUDP的报文格式是一样的,它们之间的区别其实就是TCP与UDP的区别,因此下面就针对ModbusTCP的协议进行分析,ModbusTCP与ModbusRtu(ModbusASCII)之间的区别如下图: 从上图可以看出,ModbusTCP在Modbus串行通信的基础上, 阅读全文
posted @ 2024-03-09 15:22 一杯清酒邀明月 阅读(1412) 评论(0) 推荐(0) 编辑
Qt QMessageBox::information 自定义按钮
摘要:一.基本简介 在使用QT的弹窗提示时,习惯使用 QMessageBox::information QMessageBox::question QMessageBox::warning QMessageBox::critical 一般对于按钮,是使用系统提供的默认按钮 例如:QMessageBox:: 阅读全文
posted @ 2024-03-06 13:39 一杯清酒邀明月 阅读(359) 评论(0) 推荐(0) 编辑
Qt QMessageBox的简单用法
摘要:效果 思路 1 // 创建一个question弹出对话框,添加两个按钮:Yes和No 2 QMessageBox *box = new QMessageBox(QMessageBox::Question, "提示", "确认删除''的信息吗?", QMessageBox::Yes | QMessag 阅读全文
posted @ 2024-03-06 11:05 一杯清酒邀明月 阅读(689) 评论(0) 推荐(0) 编辑
C++ 释放vector内存
摘要:释放vector内存的方法有多种,具体取决于使用vector的方式以及释放内存的目的。下面列举几种常见的释放vector内存的方法: 1、清空vector 调用vector的clear()方法可以清空vector中的元素,但是并不会释放vector所占用的内存空间。这意味着,如果之后还需要往vect 阅读全文
posted @ 2024-03-05 18:37 一杯清酒邀明月 阅读(1323) 评论(0) 推荐(0) 编辑
Qt QVector数据清理和内存清理
摘要:原因 在处理大数据时,发现QVector直接用clear后台查看程序所占用的内存并没有下降 QVector数据清理 1 QVector<int>example_vec; 2 example_vec.clear(); QVector内存清理 1 QVector<int>example_vec; 2 e 阅读全文
posted @ 2024-03-05 18:32 一杯清酒邀明月 阅读(699) 评论(0) 推荐(0) 编辑
C++ 快速清空vector以及释放vector内存
摘要:1、为什么需要主动释放vector内存 vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间 阅读全文
posted @ 2024-03-05 18:30 一杯清酒邀明月 阅读(974) 评论(0) 推荐(1) 编辑
Qt QChart更新chart占用内存持续增大问题的解决
摘要:ui->chart->setChart(chart); 按照上面的写法,每次setChart之后内存都会变大。 改成下面的写法,就没有内存变大的情况了 1 QChart* chart = new QChart(); 2 QChart* oldChart = ui->chart_2->chart(); 阅读全文
posted @ 2024-03-05 16:38 一杯清酒邀明月 阅读(148) 评论(0) 推荐(0) 编辑
Qt Creator编辑时CPU占用高解决办法
摘要:关闭Qt Creator实时编译提示插件即可解决帮助 -> 关于插件 -> C++ -> 取消ClangCodeModel -> 重启Qt Creator 阅读全文
posted @ 2024-03-05 15:54 一杯清酒邀明月 阅读(144) 评论(0) 推荐(0) 编辑
Qt 解决PLC与QModbusTcpClient通信自动断开
摘要:项目场景: 提示:这里简述项目相关背景: 例如:项目场景:QModbusTcpClient 通信 问题描述 提示:这里描述项目中遇到的问题: QModbusTcpClient 连接后,稍微停一段时间,就会出现QModbusDevice::UnconnectedState 原因分析: 提示:这里填写问 阅读全文
posted @ 2024-03-04 19:02 一杯清酒邀明月 阅读(519) 评论(0) 推荐(0) 编辑
Qt Creator 内存分析
摘要:Ubuntu 内存分析 安装 sudo apt-get install valgrind 打开 Qtcreator->Analyze-> valgrind 内存分析器Memcheck 会列出可能内存泄露的文件 (有很多是误报需要仔细分辨) Window 内存分析 下载 Heobhttps://git 阅读全文
posted @ 2024-03-04 18:59 一杯清酒邀明月 阅读(380) 评论(0) 推荐(0) 编辑
Qt Visual Leak Detector 输出解析(四)
摘要:1. 使用方式 在 QT 中使用 VLD 的方法可以查看另外几篇博客: QT 使用 Visual Leak Detector(方式一) QT 使用 Visual Leak Detector(方式二) QT 使用 Visual Leak Detector(方式三) 本次测试使用的环境为:QT 5.9. 阅读全文
posted @ 2024-03-04 18:40 一杯清酒邀明月 阅读(35) 评论(0) 推荐(0) 编辑
Qt Visual Leak Detector 输出解析(三)
摘要:1. 使用方式 在 QT 中使用 VLD 的方法可以查看另外几篇博客: QT 使用 Visual Leak Detector(方式一) QT 使用 Visual Leak Detector(方式二) QT 使用 Visual Leak Detector(方式三) 本次测试使用的环境为:QT 5.9. 阅读全文
posted @ 2024-03-04 18:36 一杯清酒邀明月 阅读(33) 评论(0) 推荐(0) 编辑
Qt Visual Leak Detector 输出解析(二)
摘要:1. 使用方式 在 QT 中使用 VLD 的方法可以查看另外几篇博客: QT 使用 Visual Leak Detector(方式一) QT 使用 Visual Leak Detector(方式二) QT 使用 Visual Leak Detector(方式三) 本次测试使用的环境为:QT 5.9. 阅读全文
posted @ 2024-03-04 18:28 一杯清酒邀明月 阅读(78) 评论(0) 推荐(0) 编辑
Qt Visual Leak Detector 输出解析(一)
摘要:1. 使用方式 在 QT 中使用 VLD 的方法可以查看另外几篇博客: QT 使用 Visual Leak Detector(方式一) QT 使用 Visual Leak Detector(方式二) QT 使用 Visual Leak Detector(方式三) 本次测试使用的环境为:QT 5.9. 阅读全文
posted @ 2024-03-04 18:25 一杯清酒邀明月 阅读(25) 评论(0) 推荐(0) 编辑
Qt 使用Visual Leak Detector(方式三)
摘要:1. 使用前的准备 参考本人另一篇博客 安装 Visual Leak Detector 下载 vld-2.5.1-setup.exe 并按步骤安装 VLD。这一种使用方式的特点是,在一台电脑上安装完成后,将 VLD 安装目录下的 lib 库及 include 文件拷贝到项目目录中,在项目 pro 文 阅读全文
posted @ 2024-03-04 17:50 一杯清酒邀明月 阅读(124) 评论(0) 推荐(0) 编辑
Qt 使用 Visual Leak Detector(方式二)
摘要:1. 使用前的准备 参考本人另一篇博客 安装 Visual Leak Detector 下载 vld-2.5.1-setup.exe 并按步骤安装 VLD。这一种使用方式的特点是,在一台电脑上安装完成后,需在项目 pro 文件中指明库及头文件的路径,然后在 mian.cpp 文件中 #include 阅读全文
posted @ 2024-03-04 17:46 一杯清酒邀明月 阅读(53) 评论(0) 推荐(0) 编辑
Qt 使用 Visual Leak Detector(方式一)
摘要:1. 使用前的准备 参考本人另一篇博客 安装 Visual Leak Detector 下载 vld-2.5.1-setup.exe 并按步骤安装 VLD。这一种使用方式的缺点是,当把项目拷贝到别的电脑上编译运行时,需要按以下流程重新配置 VLD 环境。但优点是在一台电脑上配置完成后,用的时候十分方 阅读全文
posted @ 2024-03-04 17:36 一杯清酒邀明月 阅读(94) 评论(0) 推荐(0) 编辑
Qt MSVC使用内存泄露检测工具 VLD(Visual Leak Detector)
摘要:一、简介 VLD = Visual Leak Detector,是一款用于 Visual C++ 的免费的内存泄露检测工具,官网 kinddragon.github.io, GitHub 。先说优点: 为每个泄漏的块提供完整的堆栈跟踪,包括源文件和行号信息(如果可用)。 检测大多数(如果不是全部)类 阅读全文
posted @ 2024-03-04 17:10 一杯清酒邀明月 阅读(1072) 评论(0) 推荐(0) 编辑
Visual Leak Detector 安装 VLD
摘要:一. 工具下载 Visual Leak Detector 官网下载地址:https://kinddragon.github.io/vld/, 点击 Download Installer 绿色按钮可下载工具的安装程序 vld-2.5.1-setup.exe。也可去 Git 仓库 releases 界面 阅读全文
posted @ 2024-03-04 17:01 一杯清酒邀明月 阅读(130) 评论(0) 推荐(0) 编辑
Visual Leak Detector 简介
摘要:1. 工具简介 Visual Leak Detector 简称 VLD,是 Windows 平台下用于 C/C++ 代码内存泄漏检测的开源工具,使用起来比较简单,配置好环境后包含头文件,就可以在运行时自动检测是否存在内存泄漏,并在指定位置(控制台或者文本文件)输出检测报告。该工具最初由 Dan Mo 阅读全文
posted @ 2024-03-04 16:51 一杯清酒邀明月 阅读(309) 评论(0) 推荐(0) 编辑
Visual Studio 打开Qt项目
摘要:一 、下载QT VS TOOL 插件 1.1 下载地址 官方下载地址:Index of /development_releases/vsaddin 找到对应的VS版本下载 1.2 安装 先关闭VS,然后安装,在打开VS,就看到顶部有QT VS TOOLS 了 1.3 添加路径 Qt Options- 阅读全文
posted @ 2024-03-04 16:46 一杯清酒邀明月 阅读(1533) 评论(0) 推荐(0) 编辑
Visual Studio 性能探查器排查内存泄漏
摘要:1、自用方法介绍 【1】VS使用debug模式执行程序(注意:Release模式无法看到堆栈细节!) 【2】截取内存快照 2、别人方法介绍 【1】首先用vs attach到进程,再点调试–窗口–显示诊断工具。 注意:如果用调试–性能探测器去附加进程,则内存使用率这一项是灰的,无法勾选,但是用先att 阅读全文
posted @ 2024-03-04 16:44 一杯清酒邀明月 阅读(1020) 评论(0) 推荐(0) 编辑
Modbus Slave 和 Modbus Poll 使用说明
摘要:1.软件说明 Modbus Poll:是Witte Software公司开发的的Modbus主机仿真器,用于测试和调试Modbus从设备。软件支持ModbusRTU、ASCII、TCP/IP协议。支持多设备监控,可以同时监视多个从设备/数据域。 Modbus Slave:Modbus从设备仿真器,主 阅读全文
posted @ 2024-03-01 15:43 一杯清酒邀明月 阅读(9258) 评论(0) 推荐(2) 编辑
Modbus Poll软件使用详解
摘要:软件介绍 Modbus Poll是一个模拟Modbus协议主机的上位机软件,主要用于模拟测试跟其他从机设备通信的过程。与之成套存在的另一个软件--Modbus Slave,则是模拟Modbus协议从机的上位机软件。该软件内部封装标准Modbus协议栈,通过图形化界面使得操作更为简便。目前软件支持01 阅读全文
posted @ 2024-03-01 15:33 一杯清酒邀明月 阅读(3467) 评论(0) 推荐(2) 编辑
Modbus和Modbus/TCP协议
摘要:一. 概述 Modbus是MODICON公司与1979年开发的一种通讯协议,是一种工业现场总线协议标准。1996年施耐德公司推出了基于以太网TCP/IP的Modbus协议 ModbusTCP。 Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身并没有定义物 阅读全文
posted @ 2024-03-01 15:27 一杯清酒邀明月 阅读(368) 评论(0) 推荐(1) 编辑
Qt 16位和32位高低位转换
摘要:一、16位高低位转换 1 quint16 highAndLowConversion_16(quint16 data) 2 { 3 return ((data & ox00ff) << 8) | (data >> 8); 4 } 二、32位高低位转换 1 quint32 highAndLowConve 阅读全文
posted @ 2024-03-01 15:24 一杯清酒邀明月 阅读(291) 评论(0) 推荐(0) 编辑
Qt QModbus相关类实现ModbusTcpServer总结
摘要:在疫情环境下催生出了很多的无人或者减少人员接触的项目,比如无人智慧餐厅项目中的无人送餐项目,主要是由送餐小车和一个中控屏和部分协助发餐的设备组成,由于餐厅一般的范围不会很大,考虑到Wi-Fi通信可能比较麻烦,我们前期组网协议使用的是 zigbee,这样的话小车可以无网络运行且待电能力较高,zigbe 阅读全文
posted @ 2024-03-01 11:26 一杯清酒邀明月 阅读(1515) 评论(0) 推荐(0) 编辑
Qt QModbusServer类
摘要:1、概述 QModbusServer类是用于接收和处理Modbus请求的接口。 1 Header: #include <QModbusServer> 2 qmake: QT += serialbus 3 Since: Qt 5.8 4 Inherits: QModbusDevice 5 Inheri 阅读全文
posted @ 2024-03-01 11:21 一杯清酒邀明月 阅读(440) 评论(0) 推荐(2) 编辑