- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Qt 数据库操作(Sqlite)
上面博客都写的比较详细,本文主要介绍如何使用Qt进行数据库相关操作,数据库分为关系型数据库和非关系型数据,关系型数据库主要有Sqlite、MySQL、Oracle、SQLServer、PostgreSQL等,非关系型数据库主要有Redis、Cassandra、MongoDB等。这次主要介绍Qt使用SQlite数据库。
2025-03-12 18:25:50
1148
原创 整理一下一些Qt/C++第三方库
boost 一个广泛的 C++ 库集合,提供了大量的功能模块,包括但不限于数据结构、算法、并发编程、网络编程、文件系统、正则表达式、序列化等。poco 也是一个广泛的C++库集合,提供了一套丰富的功能模块,包含网络通信、HTTP、文件系统、XML、JSON、数据库等。Eigen C++模板库,提供了许多线性代数运算和数值计算所需的工具和算法。EasyX C++图形库,提供简洁、高效的图形绘制和窗口操作接口。glog、plog、spdlog、easylog 日志功能。ffmpeg、QtAV 音视频播放。
2024-08-11 10:37:18
550
原创 Qt 压缩/解压文件
前面讲了很多Qt的文件操作,文件操作自然就包括压缩与解压缩文件了,正好最近项目里要用到压缩以及解压缩文件,所以就研究了一下Qt如何压缩与解压缩文件。
2024-03-24 16:13:20
3770
3
原创 Qt外部调用进程类QProcess的使用
可以看到关闭后触发了对应finished()信号,然后通过打印可以看到状态从打开到关闭的变化情况是:1(Starting)->2(Running)->0(NotRunning)。并且触发finished()信号时由于进程已经关闭,所以获取不到对应的进程id,但是stateChanged(NotRunning)会先于finished(),并且这时进程没有完全关闭所有能获取到对应进程id。:是一个指向字符指针数组的指针,其中每个元素是一个指向表示一个命令行参数的C风格字符串的指针。
2024-03-02 15:52:04
2922
原创 在程序中使用日志功能
plog::init(plog::debug, &file_logger).addAppender(&console_logger)进行日志初始化,将日志等级设置为debug。例如,如果将其设置为 3,则在滚动后将保留最多 3 个滚动文件,旧的滚动文件将被删除。当日志文件的大小达到这个限制时,Plog 将自动滚动日志文件并创建新的日志文件。第一个参数是日志文件的名称,这是一个字符串,用于指定要写入的日志文件的名称。时,需要提供三个参数,这些参数决定了日志文件的滚动和格式化方式。对应日志打印到了控制台。
2024-02-12 18:19:38
1035
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
2069
3
原创 Qt|大小端数据转换
我的机器cpu,如果不采取任何处理,这里输出的确实是小端数据,如果是大端那么就会输出对应的“1234567843218756”。如果上文中举例的协议定的就是小端数据传输那么就是这样写,无需做任何处理。后面打算写Qt关于网络编程的博客,网络编程就绕不开字节流数据传输,字节流数据的传输一般是根据协议来定义对应的报文该如何组包,那这就必然牵扯到了大端字节序和小端字节序的问题了。回到关于大小端的问题,代码里面采用的是结构体转QByteArray,这样就牵扯到了依靠系统自己的大小端来处理了,代码不灵活。
2024-01-28 15:36:13
4481
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
821
4
原创 Qt将打印信息输出到文件
将打印信息(qDebug、qInfo、qWarning、qCritial等)输出到指定文件来以实现简单的日志功能。该项目内所有打印信息将会输出到指定文件,比如在主界面mainwindow中点击按钮印一句d。程序运行后,不停点击按钮,可以看到有生成对应文件。
2023-12-02 15:43:35
1381
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
942
1
原创 C++/Qt读写ini文件
今天介绍C++/Qt读写ini文件,ini文件一般是作为配置文件来使用,比如一些程序的一些默认参数会写在一个ini文件中,程序运行时会进行对应的参数读取,详细可以查看百度ini文件的介绍。
2023-08-06 20:07:25
877
原创 C++/Qt 读写文件
先讲一些关于基础文本文件和二进制文件的读写操作,后续将会整理C++/Qt关于ini、xml、json、xlsx相关文件的读写操作。
2023-08-05 22:27:42
1249
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
469
原创 Qt关于路径的处理(绝对路径、相对路径、路径拼接、工作目录、运行目录)
1.绝对路径、相对路径绝对路径与相对路径关于绝对路径和相对路径的概念就不多说了,具体看在qt中的运用,比如文件当前路径下有一个“1.txt”的文本文件:那么相对路径就是“1.txt”如下图所示:程序运行后打印了“exist”,说明路径没有问题。本例中的这个文件绝对路径也就是“F:/QtProject/filepath/1.txt",改为这个运行后也是打印“exist”。一般代码中都是比较推荐使用绝对路径的不推荐使用相对路径。并且要注意不同操作系统使用的斜杠不同,Linux和wi.
2021-12-04 17:02:42
35878
2
原创 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
1058
2
原创 Qt5 linux上窗口调用showMinisized后点击任务栏还原显示异常解决
因为软件界面时自定义的无边框窗口,所以也就没有系统的任务工具栏也就不能使用系统工具栏自带的最小化/最大化/全屏 工具按钮,所以需要自己写,直接调用原生的QWidget的showMinisized,showMaxsized,showFullScreen等方法。看似很简单在windows上也正常运行,但是在linux上就出了问题,点击最小化后,点击任务栏的还原不管原来窗口是最大化还是全屏还原回来的窗口依旧不是最大化或者全屏,自己写了一个测试程序发现确实如此,但是在windows上或者再linux上使用qt4确没
2020-07-18 13:26:41
2672
原创 Qt触屏研究-碰到的一些问题
最近在搞qt触屏相关的这些由于之前没有经验所以也是碰到了很多问题,有的不一定和触屏相关,这篇主要是总结一下。首先就是前面说的手势,回去之后自己用一台具有触屏的功能的笔记本测试了一下发现表现出来的效果跟前面一样。按照官方文档QPanGesture是一个手指滑动,QSwipeGesture也是一个手指,也就是两者触点只有一个,但是测试结果并不是这样。 一个比较简单的测试程序:b...
2019-08-11 15:53:53
5183
3
原创 Qt 触屏研究-部分控件实现滑屏效果
上一篇博客是对手势操作的一些研究,这一篇主要是处理在触屏上实现控件类似手机的那种滑动效果。在网上查询资料可知qt有这样的属性。现在我测试的两个控件是QTableWidget和QTextEdit两个比较常用的需要实现滑屏效果的控件,查询资料得知需要用的是QScroller。比如设置表格: QScroller *sc = QScroller::scroller(m_Tab); QScr...
2019-07-12 10:43:43
5777
8
原创 Qt 触屏研究-touchEvent和QGesture
关于Qt编写程序在触屏上的实现各种滑动触控以及手势我通过网上资料查询最先想到的是各种鼠标事件,但是鼠标事件不支持多点的触控,所以又查询得知了touchEvent,支持的多点的触控,比如做一个双指缩放图片的大小的简单daemon。首先是在win7平台配置多点触控的模拟环境使用的是WPF Multi-Touch,这个如何配置怎么使用在网上可以查到。要下载和配置的请看这个网址https://www....
2019-07-02 17:32:45
12654
4
原创 C语言笔记-文件操作(读取和写入)
说到文件操作首先想到的就是文件的打开、关闭、读取以及写入等操作。文件可以分为文本文件和二进制文件,文本文件也称为ASCII文件,这种文件在保存时,每个字符对应一个字节,用于存放对应的ASCII码。二进制文件不是保存SASCII码,而是按二进制的编码方式保存文件内容。C语言中操作文件是用一个指向文件的指针,这个文件指针包含着这个文件的信息,C语言中规定为FILE型,声明为:typedef s...
2019-05-19 21:50:06
1907
原创 linux消息队列的简单使用
因为最近的项目需求,要求在linux下两个进程之间进行通信,其实B进程运行某一函数需要A进程的一个参数,然后我从网上查询得到进程之间通信有很多种比如消息队列、管道、共享内存等等,就找了一个消息队列的例子看了一下,然后自己就简单地写了一个消息队列的使用。由于项目原因只显示部分代码,首先要用到消息队列需要包含部分头文件:#include <sys/types.h>#includ...
2019-05-14 19:46:37
1195
原创 Qt 设置自己的进度条
本人qt菜鸡一枚,最近做项目时要用到进度条,然后查询资料发现qt有自己封装好的进度条QProgressBar和QProgressDialog,用了一下发现还可以就是有些不熟练,之前打算自己也封装一些控件练一下手,所以打算先试一下封装一个控件成进度条。简单的写了一下,仍有很多不足之处。我是用的Qlabel封装的#ifndef PROGRESSLABEL_H#define PROGRESS...
2019-04-01 19:03:23
2361
Qt使用QuaZIP压缩以及解压缩文件
2024-03-24
LocalIPC.zip
2020-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人