自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 Qt 压缩/解压文件

前面讲了很多Qt的文件操作,文件操作自然就包括压缩与解压缩文件了,正好最近项目里要用到压缩以及解压缩文件,所以就研究了一下Qt如何压缩与解压缩文件。

2024-03-24 16:13:20 2266

原创 Qt文件以及文件夹相关类(QDir、QFile、QFileInfo)的使用

本文主要总结一下文件夹以及文件相关类的一些使用方法。

2024-03-17 15:15:08 1513

原创 Qt外部调用进程类QProcess的使用

可以看到关闭后触发了对应finished()信号,然后通过打印可以看到状态从打开到关闭的变化情况是:1(Starting)->2(Running)->0(NotRunning)。并且触发finished()信号时由于进程已经关闭,所以获取不到对应的进程id,但是stateChanged(NotRunning)会先于finished(),并且这时进程没有完全关闭所有能获取到对应进程id。:是一个指向字符指针数组的指针,其中每个元素是一个指向表示一个命令行参数的C风格字符串的指针。

2024-03-02 15:52:04 1664

原创 Qt|大小端数据转换(补充)

float类型占四个字节,打印的结果占有8个字节,明显是错误的。之前这篇文章大小端数据转换如果是小数就会有问题。

2024-02-20 22:04:46 692

原创 在程序中使用日志功能

plog::init(plog::debug, &file_logger).addAppender(&console_logger)进行日志初始化,将日志等级设置为debug。例如,如果将其设置为 3,则在滚动后将保留最多 3 个滚动文件,旧的滚动文件将被删除。当日志文件的大小达到这个限制时,Plog 将自动滚动日志文件并创建新的日志文件。第一个参数是日志文件的名称,这是一个字符串,用于指定要写入的日志文件的名称。时,需要提供三个参数,这些参数决定了日志文件的滚动和格式化方式。对应日志打印到了控制台。

2024-02-12 18:19:38 832 1

原创 Qt网络编程-ZMQ的使用

使用QTcp也是类似,只不过各进程需要指定对应的服务器和客户端,本地进程间通信如果自己实现我还是推进使用QUdpSocket,因为UDP面向报文,无需建立链接,除了单播还可以广播、组播,而且因为处于同一主机,所以基本不用考虑整个报文丢失的问题。主机1中的进程A想要与主机2中的进程B进行通信,则首先他们之间需要知道对方所在主机的IP地质以及对方所绑定的端口,好比A和B住在同一个小区(同一个局域网内),A派人给B送信则需要制度B所住的楼栋(主机IP地址)以及B的门牌号(绑定的IP地址)。

2024-02-09 15:58:34 1283 3

原创 Qt网络编程-QTcpServer的封装

简单封装Tcp服务器类,将QTcpServer移入线程。

2024-02-08 22:02:22 756

原创 Qt网络编程-写一个简单的网络调试助手

【代码】Qt网络编程-写一个简单的网络调试助手。

2024-02-08 19:28:26 471 1

原创 Qt网络编程-TCP与UDP

需要知道这两者的区别:网络通信以上两者都绕不开IP地址与端口这两个。

2024-02-08 19:10:40 2800

原创 Qt|大小端数据转换

我的机器cpu,如果不采取任何处理,这里输出的确实是小端数据,如果是大端那么就会输出对应的“1234567843218756”。如果上文中举例的协议定的就是小端数据传输那么就是这样写,无需做任何处理。后面打算写Qt关于网络编程的博客,网络编程就绕不开字节流数据传输,字节流数据的传输一般是根据协议来定义对应的报文该如何组包,那这就必然牵扯到了大端字节序和小端字节序的问题了。回到关于大小端的问题,代码里面采用的是结构体转QByteArray,这样就牵扯到了依靠系统自己的大小端来处理了,代码不灵活。

2024-01-28 15:36:13 2325 1

原创 Ubuntu上安装部署Qt

我下载使用的是:ubuntu-23.10.1-desktop-amd64.iso。如何安装VMware和对应Ubuntu镜像这里不多作介绍。安装对应gcc与g++,sudo执行apt install gcc和sudo apt install g++ 进行安装。编译过程中会遇到一些报错。可以参考这个文章对应解决。

2024-01-21 21:18:32 708 3

原创 Qt将打印信息输出到文件

将打印信息(qDebug、qInfo、qWarning、qCritial等)输出到指定文件来以实现简单的日志功能。该项目内所有打印信息将会输出到指定文件,比如在主界面mainwindow中点击按钮印一句d。程序运行后,不停点击按钮,可以看到有生成对应文件。

2023-12-02 15:43:35 1013 1

原创 C++/Qt读写xml文件

Qt读写xml文件可以使用QDomDocument或者QXmlStreamReader(QXmlStreamWriter),其中前者是获取整个dom树操作,后者是按照读文件一样按行读取。C++读写xml文件需要借助第三方来实现,比较好用的有tinyxml2和pugixml,对应的网址链接。项目代码中仅仅需要包含tinyxml2.h和tinyxml2.cpp两个文件即可,以读写这个xml为例。同样是读刚刚的xml文件,以下是读函数。执行后可以查看文件已经被修改。可以看到文件已被修改。执行之后可以看到打印。

2023-12-02 14:39:09 684 1

原创 C++/Qt读写ini文件

今天介绍C++/Qt读写ini文件,ini文件一般是作为配置文件来使用,比如一些程序的一些默认参数会写在一个ini文件中,程序运行时会进行对应的参数读取,详细可以查看百度ini文件的介绍。

2023-08-06 20:07:25 696

原创 C++/Qt 读写文件

先讲一些关于基础文本文件和二进制文件的读写操作,后续将会整理C++/Qt关于ini、xml、json、xlsx相关文件的读写操作。

2023-08-05 22:27:42 1100 1

原创 C#调用C++接口

最近项目需求需要将qt写的动态库给c#项目调用,所以就在网上查了一些资料,准备先从C#调用c++接口开始。我没有从事过c#开发,对于c#的学习也只是大学时候学过一点现在都忘得差不多了。首先从C++接口开始。因为我是从事qt开发的,所以用qtcreator写代码比较习惯,当然写c++代码大家习惯用什么写都行,vs2015,dev c++,vc++6.0都行,这里我只是用QtCreator做一个示范。很简单的一个动态库,里面就一个方法add,计算两数之和。我c#了解的比较少,这些都是现查的,注意。

2023-05-09 20:21:37 250

原创 Qt关于路径的处理(绝对路径、相对路径、路径拼接、工作目录、运行目录)

1.绝对路径、相对路径绝对路径与相对路径关于绝对路径和相对路径的概念就不多说了,具体看在qt中的运用,比如文件当前路径下有一个“1.txt”的文本文件:那么相对路径就是“1.txt”如下图所示:程序运行后打印了“exist”,说明路径没有问题。本例中的这个文件绝对路径也就是“F:/QtProject/filepath/1.txt",改为这个运行后也是打印“exist”。一般代码中都是比较推荐使用绝对路径的不推荐使用相对路径。并且要注意不同操作系统使用的斜杠不同,Linux和wi.

2021-12-04 17:02:42 29996

原创 QLocalSocket、QLocalServer实现本地进程通信简单实例

平台:Windows7 64位Qt版本:Qt 5.6(vs2015)代码:客户端头文件#ifndef MAINWINDOW_HPP#define MAINWINDOW_HPP#include <QMainWindow>class QLocalSocket;namespace Ui {class MainWindow;}class MainWindow : public QMainWindow { Q_OBJECTpublic: ex

2020-07-22 20:17:08 889 2

原创 Qt5 linux上窗口调用showMinisized后点击任务栏还原显示异常解决

因为软件界面时自定义的无边框窗口,所以也就没有系统的任务工具栏也就不能使用系统工具栏自带的最小化/最大化/全屏 工具按钮,所以需要自己写,直接调用原生的QWidget的showMinisized,showMaxsized,showFullScreen等方法。看似很简单在windows上也正常运行,但是在linux上就出了问题,点击最小化后,点击任务栏的还原不管原来窗口是最大化还是全屏还原回来的窗口依旧不是最大化或者全屏,自己写了一个测试程序发现确实如此,但是在windows上或者再linux上使用qt4确没

2020-07-18 13:26:41 2244

原创 Qt触屏研究-碰到的一些问题

最近在搞qt触屏相关的这些由于之前没有经验所以也是碰到了很多问题,有的不一定和触屏相关,这篇主要是总结一下。首先就是前面说的手势,回去之后自己用一台具有触屏的功能的笔记本测试了一下发现表现出来的效果跟前面一样。按照官方文档QPanGesture是一个手指滑动,QSwipeGesture也是一个手指,也就是两者触点只有一个,但是测试结果并不是这样。 一个比较简单的测试程序:b...

2019-08-11 15:53:53 4515 3

原创 Qt 触屏研究-部分控件实现滑屏效果

上一篇博客是对手势操作的一些研究,这一篇主要是处理在触屏上实现控件类似手机的那种滑动效果。在网上查询资料可知qt有这样的属性。现在我测试的两个控件是QTableWidget和QTextEdit两个比较常用的需要实现滑屏效果的控件,查询资料得知需要用的是QScroller。比如设置表格: QScroller *sc = QScroller::scroller(m_Tab); QScr...

2019-07-12 10:43:43 5613 8

原创 Qt 触屏研究-touchEvent和QGesture

关于Qt编写程序在触屏上的实现各种滑动触控以及手势我通过网上资料查询最先想到的是各种鼠标事件,但是鼠标事件不支持多点的触控,所以又查询得知了touchEvent,支持的多点的触控,比如做一个双指缩放图片的大小的简单daemon。首先是在win7平台配置多点触控的模拟环境使用的是WPF Multi-Touch,这个如何配置怎么使用在网上可以查到。要下载和配置的请看这个网址https://www....

2019-07-02 17:32:45 11354 4

原创 C语言笔记-文件操作(读取和写入)

说到文件操作首先想到的就是文件的打开、关闭、读取以及写入等操作。文件可以分为文本文件和二进制文件,文本文件也称为ASCII文件,这种文件在保存时,每个字符对应一个字节,用于存放对应的ASCII码。二进制文件不是保存SASCII码,而是按二进制的编码方式保存文件内容。C语言中操作文件是用一个指向文件的指针,这个文件指针包含着这个文件的信息,C语言中规定为FILE型,声明为:typedef s...

2019-05-19 21:50:06 1804

原创 linux消息队列的简单使用

因为最近的项目需求,要求在linux下两个进程之间进行通信,其实B进程运行某一函数需要A进程的一个参数,然后我从网上查询得到进程之间通信有很多种比如消息队列、管道、共享内存等等,就找了一个消息队列的例子看了一下,然后自己就简单地写了一个消息队列的使用。由于项目原因只显示部分代码,首先要用到消息队列需要包含部分头文件:#include <sys/types.h>#includ...

2019-05-14 19:46:37 1116

原创 Qt 设置自己的进度条

本人qt菜鸡一枚,最近做项目时要用到进度条,然后查询资料发现qt有自己封装好的进度条QProgressBar和QProgressDialog,用了一下发现还可以就是有些不熟练,之前打算自己也封装一些控件练一下手,所以打算先试一下封装一个控件成进度条。简单的写了一下,仍有很多不足之处。我是用的Qlabel封装的#ifndef PROGRESSLABEL_H#define PROGRESS...

2019-04-01 19:03:23 2291

Qt使用QuaZIP压缩以及解压缩文件

内有libzip、quazip源码、编译生成的库文件,以及使用QuaZIP的一个测试程序代码。 环境是Windows,VS2022,Qt5.15.2,代码仅供参考

2024-03-24

Qt网络编程-ZMQ的使用

简单的实现了ZMQ进程间通信的PUB/SUB模式

2024-02-09

Qt写的一个简单的网络调试助手

Qt写的一个简单的网络调试助手

2024-02-08

LocalIPC.zip

QLocalSocket、QLocalServer实现本地进程通信简单实例 先启动服务器server,输入name再init,成功后,启动客户端,输入对应服务器name再connect成功后便可以进行通信

2020-07-22

空空如也

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

TA关注的人

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