自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 关于Qt项目配置,项目编译生成的库文件路径详解

默认情况下,Qt 项目会在项目根目录下创建一个,生成的库文件存储在构建目录的debug或release子目录中。

2025-06-03 13:22:03 274

原创 虚拟机ubantu20.04系统桥接模式下无法ping通外网,但可以ping通本机的解决方案

虚拟机ubantu20.04系统桥接模式下无法ping通外网,但可以ping通本机。

2025-05-09 15:58:24 393

原创 linux下使用gdb运行程序,查看程序崩溃原因

gdb 是 GNU Debugger 的缩写,是一个功能强大的用于调试程序的开源调试器工具。它可以帮助开发人员诊断和解决程序中的错误、跟踪程序执行过程、查看变量的值等。gdb 支持多种编程语言,包括 C、C++、Objective-C、Fortran 等,并可用于多种操作系统,如 Linux、Unix、Windows 等。通过 gbd,开发人员可以进行如下操作:设置断点:可以在程序中设置断点,以便在执行到特定代码行时暂停程序的执行,方便查看程序状态。单步执行:可以逐行执行程序,并查看每一步的执行情况,帮助定

2024-12-05 17:22:50 2091

原创 流媒体之linux下离线部署FFmpeg 和 SRS

难点在于离线的安装过程,要是有网的话,so easy!

2024-12-04 14:11:48 1463

原创 一篇文章带你轻松搞定程序接口开发,接口文档编写

确定好了需求的情况下,就要设计接口了,设计如果还是按照老方法,用word自己写,画框框什么的。我这里就转换成了docx的word格式 ,导出后的示例如下所示,有些东西需要自己在md那里补充在转化,或者直接在文件里改就行了,总之省了很多事。然后,根据需求设计具体的接口,包括接口的名称、路径、请求方法、请求参数、响应结构等。美化下格式,在根据需求添加或者修改一下,一份程序接口文档,就完成了!我们选择MD格式导出,再用在线的MD转化工具转化成自己想要的格式,如docx,pdf等。所以,好的开发工具很重要。

2024-09-29 15:58:19 2079

原创 Qt与MQTT交互通信

相比于直接使用 TCP,MQTT 提供了更高层次的抽象和功能,使得消息的传递更加灵活、可靠和高效。特别是在物联网和低带宽网络环境中,MQTT 的优势更加明显。

2024-09-11 16:50:17 4930 10

原创 接口(API)开发,测试工具-apifox

为什么需要接口(API)?不同的平台或系统可能使用不同的技术栈、编程语言或数据格式。API提供了一个标准化的方式,使得这些不同的系统可以相互交换数据和功能调用,实现互操作性在开发日常的项目交互中,不同平台,不同项目之间常常需要通信,而相互通信就需要指定协议,保证双方的正常通信。这种方式称之为接口,接口协议,数据格式由双方或单方制定,便于后续通信的数据交互。

2024-06-05 16:32:16 1078

原创 C++之通信数据交换JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript语言的一个子集,但采用完全独立于语言的文本格式,这些特性使得JSON成为理想的数据交换语言。在发送数据前,将复杂的数据结构(如对象或数组)转换(序列化)为JSON格式的字符串。这一点在Web开发中尤为重要,因为HTTP协议通常用于传输文本数据。JSON格式独立于任何编程语言,大多数现代编程语言都提供了解析JSON的工具。

2024-06-03 16:35:16 728

原创 QT httpServer多线程后台服务器的例子实现

建立一个WebServerApi的工程项目,没有界面的,一般后台服务都是没有界面的,更加轻便,反应快,可以建立控制台项目或者动态库/插件库,都可以,我这里用来演示,就用控制台项目演示了。现成的接口是没有的,需要自己写,底层本质都是基于QWebServer加上多线程封装实现的,轮子是已经有的,已经造好了,我们用就行了,想深入了解的,可以看源码的实现。在init()的函数中,初始化了webServer的配置信息,这里用的是配置文件(WebConfig.ini)的方式进行配置,如监听的端口,还有一些其他的配置。

2024-04-29 17:02:23 2315 22

原创 讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so

最近linux下的Qt项目中要连接oracle数据库,用户需要我们访问他们的oracle数据库,查询数据。连接总是提示QSqlDatabase: QOCI driver not loaded

2024-03-08 15:42:32 1691 9

原创 C++线程池的原理(画图)及简单实现+例子(加深理解)

对于某些场景,使用线程池是很有必要的,在需要高并发的服务器中线程池几乎是必备的,如文件传输的服务器,多用户下载或者上传文件时,几乎是同步的,在高并发场景下,如果每个请求都创建一个新线程,会导致线程数量过多,同时线程的创建和销毁也需要消耗大量的资源。为了解决这些问题,可以使用线程池技术。线程池预先创建一定数量的线程,并且可以在多个请求之间复用这些线程,从而提高服务器的处理能力和资源利用率。因此,在高并发的服务器中,使用线程池技术可以有效地降低资源消耗、提高系统性能和响应速度,是非常必要和常用的技术手段之一

2024-01-04 09:03:09 10654 4

原创 C++智能指针的简单实现,原理及应用

项目中用到最多的就是共享指针了,特别是一个指针对象被多次引用,导致释放时无从下手或者很麻烦时,就要用共享指针来避免内存泄露了,其他两种指针用的较少,用起来也不难,理解就行了。

2023-12-28 16:18:14 1261

原创 QT QModbusTcpClient使用ModbusTcp协议与硬件通信实战例子

采用QModbusTcpClient和QTcpSocket本质差不多,都是通过tcp进行通信,QTcpSocket需要自己封装相应的modbusTcp协议内容,发送给硬件服务器QModbusTcpClient封装好了modbusTcp协议,你只需要理解好,然后填入相应的参数和调用相应的接口就行了,不需要理解modbusTcp协议,对于第一次解除的人来说,只是项目需要,不需要深入理解的,最合适不过了。

2023-12-25 10:33:15 5521

原创 linux下实现Qt程序实现开机自启动

这是操作系统中用于配置启动项的目录,该目录下存放着开机自启动的启动器(.desktop)文件,要想软件开机自启动,大都是通过配置一个启动器文件来实现,可以看一下这个目录。要想实现开机自启动,首先,QT是没有这种实现的,最好是靠电脑开机的启动目录启动软件,下面这个目录。

2023-11-29 16:08:37 3203

原创 linux下实现电脑开机后软件自启动

原理就是,建立一个启动器,把启动器放到开机启动区域,开机后,会把这个区域的启动器都执行一遍,所以我们只需要把启动器【DisplayScreen.desktop】的内容设为执行这个守护脚本【DisplayScreen_Daemon.sh】就行了。第二个文件【DisplayScreen_Daemon.sh】为检测软件是否启动的守护脚本文件,如果软件被杀死了,会被检测到,自动重启,可以自己改想要的效果,一下脚本代码为10s校测一次改软件进程,如果进程不存在就拉起软件。执行下,守护脚本,软件就起来了。

2023-11-06 17:20:47 2005

原创 linux shell脚本修改ini配置文件[session]下的键值

比如我要修改一个配置文件,如下,修改systemFlag.ini下的[huake]下的ip和port的值。代码如下,我就不解释了,有注释,用的是sed 来修改的,不懂的,可以去学习一下。执行脚本,提示修改成功!

2023-10-27 14:18:13 869

原创 Qt 画自定义饼图统计的例子

这个是我仿照官方给的例子,让后自己理解后,修改的,首先重写饼图块,让鼠标悬浮在某个饼图块时,让这个块弹出来,然后显示块的信息,这个比较简单,如下所示。主体代码如下,主要是初始化饼图,创建饼图,为饼图块随机上色,为饼图数据的显示做排序,只需要调用接口函数把相应的数据塞进去即可生成可视化的饼图。只需要把map放入创建饼图的函数即可,map中对应的是QMap,也就是饼图右侧的标签。我的这个例子是,点击统计按钮之后,获取相应的数据,然后生成相应的饼图。

2023-09-28 15:52:52 667

原创 Qt 当磁盘可用空间小于指定大小时删除早期的文件

用户反应,电脑由于自身磁盘空间只有128G,由于软件执行一次任务,就要录视频记录,导致磁盘空间爆满,电脑卡,无法再次生成视频。

2023-08-11 14:53:07 963

原创 Qt详解实现TCP文件传输例子(文件下载和上传)附源码

变量qint64 payloadSize用来控制每次文件读取的字节数,progressByte用来存储发送的进度,我这里一次只发送1024个字节,因为区域网传输太快了,文明小传输过程不明显,你们可以调大小,比如1024*64个字节。收到服务器发送的文件信息消息后,进行读取,获取文件名,文件大小,用文件类对象进行存储,新建准备写入一个要下载的文件,准备工作完成后,向服务器发送获取文件数据的消息。传输文件信息时,需要获取要发送的文件信息,如文件名,文件大小等,然后将这些信息发送给客户端。//是否正在下载标识。

2023-06-11 18:10:04 17241 48

原创 linux下的Qt程序打包脚本(能避免各种问题),网上的脚本打包失败常见原因分析和雷区

写这篇博客,花了很多时间,都花这个份上了,我就把所有的打包的原创脚本代码都写出来了,想要的自己拿吧,脚本式打包,链接啥的,都给弄好了,贴心,注释都写好了,不会改的,在评论区留言吧,或者评论区交流下。一键打包代码,拿走/bin/shexe="RFIDReaderTest" #要打包的程序名 *#获取当前路径pwd)#打包的Qt库位置 *#程序依赖库所在位置,用于打包依赖库需要的Qt库,没有留空即可,即myLibPath="" *#删除原有文件夹,新建新文件夹,存储Qt库。

2023-05-10 10:25:00 3445 2

原创 linux和window下svn版本控制可视化工具

Linux环境下使用图形化界面的SVN客户端软件,那么RabbitVCS绝对是最好的,相当于Windows环境下用的TortoiseSVN,甚至连操作都基本一样。这些是以.deb扩展名结尾的存档文件。要使用apt安装.deb软件包,我们应该使用apt install选项。也不是不行,但是用久了,感觉很麻烦,后面就用了svn的版本可视化工具。要.deb使用dpkg命令安装文件,我们将使用-i参数。1)使用dpkg命令安装.deb文件。2)使用APT命令安装.deb文件。Primis Player占位符。

2023-05-06 08:53:47 1698

原创 wps中论文参考文献引用后,引用的后面无法再设置目录,解决方案

*原因:**因为我们引用时,就已经默认是文档的结尾了,所以在引用的后面再想添加目录,就不行了,就需要在重新设置一下脚注的位置。第一步:在脚注上面,插入分节符,让当前脚注所占的页成为一个独立的一节,和其他节(内容)分开。第二步:在全选所有脚注,右键选择脚注和尾注。然后格式改成如下,如下,应用即可。然后就可以论文最后设置目录了。

2023-04-09 14:25:37 5081 1

原创 QRadioButton设置字体和按钮样式(变大,调整颜色)

QRadioButton设置字体和按钮样式(变大,调整颜色)今天用到了QRadioButton这个选择的按钮,这是默认的样式,发现在ui的属性里面没有可调节的选项,有点犯愁,查了会文档,最后发现只能用样式表来修改QRadioButton的样式。QRadioButton::indicator 表示QRadioButton的指示器,也就是那个可以点的圆形按钮。用样式表设置了样式后,圆形按钮变大了,字体颜色啥的也变了,好看多了,达到了想要的效果。QRadioButton::checked 表示选中后要做的样式改变

2023-03-09 16:28:03 9843

原创 无法加载库plugins/libui1920.so:plugins/libui1920.so: undefined symbol: _ZN14**TaskSelectPage**10m_taskTyp

无法加载库plugins/libui1920.so:plugins/libui1920.so: undefined symbol: _ZN14TaskSelectPage10m_taskTypeE)"

2023-02-28 14:35:31 256

原创 关于Qt程序打包后运行库依赖的常见问题分析及解决方法

(1)找不到程序所依赖的Qt库 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by ./运行程序名)(2)Could not Load the Qt platform plugin "xcb" in "" even though it was found直接提示段错误即segmentation fault,或者Illegal instruction (core dumped) 非法指令

2023-02-24 15:49:07 8902 43

原创 Qt中串口通信常用字符串转换函数

1.字符串转GB2312传入要转换的字符串,即可返回GB2312的16进制的字符串2.字符串转ASCII(16进制)3.获取CRC校验码4.十进制字符串转16进制字符串5.要将16进制字符串发送给串口(0x13格式)的转换函数其中data为16进制字符串,如01 04 A1 45

2023-02-02 14:26:07 1978

原创 实战详细讲解Qt插件plugin的编写与用法

qt插件的开发,可以说是动态库的开发,因为调用方式类似,多熟悉一下,利用Qt框架开发很简单的。在想想这种调用过程有的熟悉,比如公司买了一堆摄像头,公司要对摄像头进行二次开发,实现自己想要的功能,集成到一套设备里去,然后在卖给用户。此时厂商肯定会提供开发文档,并给你SDK包(软件开发工具包), 包里你会发现只有头文件和一堆库文件,没有源文件,因为实现的过程是产商公司保密的,给你看还得了。所以都封装成了库的形式给你调用,如静态库或者动态库。

2023-02-01 17:30:24 11796 16

原创 Qt中使用qt自带的函数实现各种进制间的相互转换,easy.

number①使用QString的静态函数number即可,如我把字符串"8m"中的每个字符转化为ascii表中的十进制,然后在从十进制转化为16进制,如下8字符对应的ascii表十进制为:56m字符对应的ascii表十进制为:109只用后,转化为36 6dQString静态函数QString::number格式为。

2023-01-16 17:24:53 2121

原创 Qt程序校正linux系统时间,思路及解决方案

linux下的程序自启动,程序修改系统时间

2023-01-09 13:24:38 1313

原创 Qt使用xlsx对操作excel表格常用函数及解析,绘制边框线.自动换行等

Qt使用xlsx对操作excel表格常用函数及解析,合并表格,绘制边框线.自动换行等

2022-12-20 16:03:42 3208

原创 QT运行程序提示QLayout: Attempting to add QLayout ““ to * ““, which already has a layout,原因分析及解决方案

QLayout: Attempting to add QLayout "" to FileDownload "", which already has a layout翻译过来就是:QLayout:正在尝试将QLayout“”添加到已具有布局的FileDownload“”原因:因为一个QWidget的对象只能设置一个布局QLayout,`不能设置多个布局`

2022-12-08 14:26:59 7388 3

原创 linux环境下,一步步教你命令行搭建自己的git服务器和客户端

git服务器和客户端的搭建,先说下我的git服务器环境,git服务端的搭建我用的是阿里的ubantu云服务器,毕竟云服务器上可以在任何联网的电脑上访问嘛,方便。局域网也可以,svn和git这两种最常用的代码管理系统,在企业中基本用的都是公司的局域网相互共享,更安全。 客户端用什么系统都可以,能装git就行了,我用的是国产(深度)deepinxi系统,也就是linux系统。接下来开始从git服务端开始一步步搭建。先确保是否安装了git

2022-12-06 13:36:15 6644

原创 Qt 大型工程项目的搭建过程,模块分类详解

平常我们写的小项目一般直接新建一个应用程序就可以了由于小工程的代码不多,往往几百行到几千行,不超过一万行代码,一个人就可以开发搞定。但是要是多人的开发的话,这种工程就行不通了,代码和文件一多,看起来乱得一团麻,模块啥的都没分开,自己看都麻,要是别人看,已经不想看了,开发效率低下。要想搭建一个能承载成百上千个文件,数十万行代码的大型工程框架,怎么搭建呢。

2022-11-24 16:52:34 11186 11

原创 QProgressDialog.close()失败,进度条关闭感觉失败了,无法彻底关闭

QProgressDialog.close()失败,进度条感觉失败了,无法彻底关闭,开发环境:我是在deepin(深度)系统下开发的,在我本机上,一点问题也没有,但是我移植到了ubantu的机子上,就偶尔出现出个问题,出现了一个模态框,需要重启软件才能关闭。 问题描述:在将导出台账成.xlsx文件时,出现了这个问题,那是一头雾水,想了很久,就在今天终于找到问题了。因为导出台账成.xlsx文件时,会调用进度条显示给用户,让用户等待导出完成,如下所示

2022-11-15 16:09:30 952

原创 deepin(深度)系统下qt5.12.0的程序打包发布到linux云服务器上

QApplication定义在widgets模块中,是QWidget相关的,能设置双击间隔,按键间隔,拖拽距离和时间,滚轮滚动行数等,能获取桌面,激活的窗口,模式控件,弹跳控件等。想到这里,我就去我的源代码那里看了下,去Qt的.pro文件看了看,虽然我有QT -= gui的配置,但是认真看了下,还有这个 QT += widgets,这个就是图形模块了,注释了之后,程序也报错了。这样子,然后重新编译,把之前打包好的文件全部删掉,重新打包一遍,重新上传服务器,配置好,就没有问题了,运行,没有报错了,搞定!

2022-11-07 15:32:29 572

原创 deepin(深度)系统下使用linuxdeployqt将qt5.12.0的程序打包发布

deepin(深度)系统下使用linuxdeployqt将qt5.12.0的程序打包发布

2022-10-31 10:48:09 1533 1

原创 关于qt使用sqlist数据库的注意事项

之前一直使用的是mysql数据库,这次开发中使用到了SQList数据库,因为底层封装不是我写的,是我老大写的,都是关于数据库的接口啥的,我调用就行。就在昨天,程序突然查不到数据了,也没有报错,数据库也有呀,搞了半天,我就进底层封装查看,原来没有做判断,判断这个SQList数据库是否存在。---------------再此记录一下。像微信就是用的SQLite数据库来存储我们的聊天信息的。SQList数据库和别的数据库不一样,如mysql,它的特性是,没有数据库就自己建立一个数据库,然后连接上去。

2022-10-12 16:21:07 670

原创 QDataStream中 << 和 >> 输入输出重载的理解

今天在看文件传输时,采用QDataStream对文件信息进行二进制序列化传输,比如文件的大小,文件名等信息,有些操作有点懵,有点看不懂。想要加入指定位置的话呢,就要进行调用seek函数,移动到指定位置,seek(0)表示头部,依次类推;,看了半天,不知道是干嘛的,刚看时搞懵我了,也是我不懂的原因吧。所以进行这步后,在插入数据,就要从头开始了,如下所示。就不画图了,对比上面的图就行了,只不过反过来而已。插入的数据,会覆盖当前要插入位置的数据。后面终于看懂了,画图记录理解一下;输入是这样子,输入也是这样子的。

2022-09-28 15:21:48 1936 5

原创 linux下qt程序发布并移植到其他linux平台下详细过程(配图)

今天发现,linux的编译好的qt程序发布移植,相比windows下的发布移植,多了一些步骤window下直接用qt携带的windeployqt打包工具,在你要打包的应用程序目录下用命令执行:windeployqt+你要发布的应用程序名,如windployqt game.exe 但是linux下的发布,就没有那么简单了,至少我的是这样子的。因为linux下的qt没有自带的打包工具。你也可以去下载,有大神写好了,去下安装就行了。不过安装好之后,后续的步骤也蛮麻烦的,我就不用这种方法了。

2022-09-21 16:08:58 7568 7

原创 理解结构体内存对齐并算清楚结构体大小,结构体对齐的意义在哪?

不是所有的硬件平台都能访问任意地址上的任意数据;某些硬件平台只能在某些特定地址处取某些特定的数据,否则就会抛出硬件异常。也就是说在计算机在内存读取数据时,只能在规定的地址处读数据,而不是内存中任意地址都是可以读取的。

2022-09-13 15:59:06 1480

里面有linux下的开机自启动脚本,和软件的一键打包脚本

里面有linux下的开机自启动脚本,和软件的一键打包脚本

2023-07-21

linux下的版本控制工具RabbitVCS

RabbitVCS

2023-05-06

Qt打包脚本,打包程序和自己写的库所需要的全部库依赖,一键式打包

Qt打包脚本,打包程序和自己写的库所需要的全部库依赖,一键式打包

2023-02-24

Qt MVC模型视图代码标准模板

Qt MVC模型视图代码标准模板

2022-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除