深入浅出C++ Qt开发技术
文章平均质量分 85
本专栏《深入浅出C++ Qt开发技术》将会系统介绍C++ Qt PC客户端开发技术,详细介绍Qt窗口、控件自定义,多线程,进程通信、图表、前后端http交互、Qt Web混合开发技术、Qt qss界面美化,解决Qt常见的疑难杂症,定制PC客户端应用,让世界上没有难写的Qt界面。
优惠券已抵扣
余额抵扣
还需支付
¥129.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
令狐掌门
C++程序员,出版过《C++零基础入门视频教程》、《Qt高级进阶视频教程》、《OBS源码分析与桌面录制视频教程》、《PyQt PySide6零基础入门与项目实战》。
展开
-
C++ Qt零基础入门进阶与企业级项目实战教程与学习方法分享
介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。原创 2023-09-21 23:00:33 · 3509 阅读 · 0 评论 -
C++ Qt高级开发视频教程
C++ Qt高级开发视频教程原创 2022-07-11 09:53:42 · 7229 阅读 · 14 评论 -
C++ Qt进程间通信机制之QRO、QRemoteObjectHost
Qt高级开发视频教程C++零基础入门视频教程PyQt PySide6零基础入门与项目实战本篇博客介绍使用QRO实现Qt应用程序进程间通信。本篇博客代码在Qt5.15.2测试通过,可用。一般谈到进程间通信,都是共享内存,消息队列,socket等,本篇博客介绍的QRO也就是QRemoteObjectHost是Qt基于socket封装的进程间通信技术,并且加入了Qt信号机制,比其它基于socket的进程间通信技术更灵活。原创 2024-08-30 22:17:54 · 1401 阅读 · 0 评论 -
C++ Qt实现http url启动本地应用程序
如果是实际开发,在项目发布制作安装包时,可以使用NSIS或Inno Setup等打包工具将上面的注册表信息写到打包脚本里,当用户双击安装应用程序时,就会将上述信息写到注册表,上面路径需要替换为你的实际应用程序安装的路径。特别注意:应用程序的反斜杠别搞错了!!!自己测试的话双击register_protocol.reg文件,将信息导入注册表。原创 2024-06-05 18:20:12 · 471 阅读 · 0 评论 -
C++ Qt里如何使用std::thread
本篇博客介绍如何在C++ Qt项目里使用std::thread,以及父子线程之间的交互方法。原创 2024-03-15 22:10:39 · 398 阅读 · 0 评论 -
在Qt代码中使用Windows事件机制WaitForMultipleObjects、SetEvent
在Qt开发客户端时,经常使用信号槽来处理控件或窗口之间的事件,如果是Windows系统,也可以用windows事件来代替Qt的信号槽,本篇博客来介绍这种用法。原创 2024-01-08 21:20:10 · 1301 阅读 · 0 评论 -
QLinkedList用法介绍与代码演示
或者您有特定的理由需要使用它(例如,与老版本的Qt代码兼容),下面是一个基本的用法示例。的实例,用于存储整数,并演示了如何添加元素、迭代元素以及如何添加和移除链表头部和尾部的元素。是Qt框架中的一个容器类,它实现了一个双向链表。但是值得注意的是,在最新的Qt版本中,可能在Qt的未来版本中被完全移除,建议针对新项目使用标准库中的容器。已经在Qt框架中被弃用,除非有兼容性需求,否则建议使用标准库中的。,因为它提供了类似的功能,并且与C++标准库更兼容。如果你正在使用CMake,确保在你的。原创 2023-12-01 08:44:56 · 566 阅读 · 0 评论 -
QHash使用介绍与代码演示
若要在QHash一个qHash函数,它计算您的类型实例的哈希值。一个相等比较 (operator==),以确定两个实例是否相等。这些函数允许QHash正确地存储和查找键值对。下面是一个自定义类型和相应qHash函数的简单示例:假设您有一个自定义类型public:int id;为了让能够作为QHash的键,您需要定义一个qHash// 在相同命名空间下,通常是在 MyCustomType 类型定义的同一个头文件中。原创 2023-11-30 09:18:14 · 1181 阅读 · 0 评论 -
QTemporaryDir和QTemporaryFile使用介绍和代码演示
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-30 09:17:44 · 1168 阅读 · 0 评论 -
Qt状态机介绍与代码演示
状态机机制在软件开发中是一种设计模式,用来模拟具有一定数量状态的系统或对象。在状态机机制中,系统可以处于特定的状态之一,并且根据输入或事件在不同状态之间转换。每个状态都定义了系统在该状态下可以执行的行为以及它可以转移到的其他状态。有限状态机(Finite State Machines, FSM):这是最常见的类型,用于模拟具有有限数量状态的系统。在有限状态机中,状态、事件(或输入)以及状态转换规则被明确定义。原创 2023-11-28 09:21:58 · 1377 阅读 · 0 评论 -
带你了解Qt框架中的设计模式:命令模式
在Qt中,命令模式通常是通过类及其相关的类,比如QUndoStack和QUndoView,来实现的。命令模式是一种行为设计模式,它将一个操作封装为一个对象,从而允许用户对操作进行参数化、排队、存储和其他操作。在Qt中,命令模式主要用于实现撤销/重做功能。每一个操作(比如文本编辑器中的插入或删除操作)都被封装在一个对象中。每个命令对象知道如何执行自己(通过redo方法)以及如何撤销自己(通过undo方法)。原创 2023-11-28 09:21:20 · 1154 阅读 · 0 评论 -
带你了解Qt框架中的设计模式:观察者模式
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-27 08:55:04 · 1293 阅读 · 0 评论 -
Qt模型视图Model-View架构介绍与优劣分析
在C++或其他面向对象编程语言中,MVC(Model-View-Controller)模式是一种架构设计模式,用于分离应用程序的不同方面,以增加可维护性和灵活性。其核心思想是将应用程序分为三个核心组件:模型(Model),视图(View),和控制器(Controller)。Qt提供了一套跨平台的、事件驱动的机制,非常适合需要在多个平台上提供一致用户体验的应用程序。MFC是一个较为传统的、基于Windows的框架,适合那些已经熟悉Windows消息处理且不需要跨平台的应用程序开发。WPF。原创 2023-11-27 08:54:25 · 1330 阅读 · 0 评论 -
Qt多文档MDI窗口QMdiArea使用介绍
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-27 08:53:33 · 1036 阅读 · 0 评论 -
一文带你了解Qt d指针吊打面试官
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-26 13:26:22 · 1145 阅读 · 0 评论 -
从Qt源码的角度分析Qt对象树与内存管理模式
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-26 13:25:31 · 930 阅读 · 0 评论 -
C++ Qt QString用法详解与代码演示
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-26 13:24:30 · 1041 阅读 · 0 评论 -
Qt OpenGL固定管线与可编程管线
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-27 12:30:00 · 1653 阅读 · 0 评论 -
QThreadStorage使用介绍
线程数据存储是指为每个线程在程序中分配和管理数据的过程。它主要用于并发编程和多线程环境,以确保线程之间数据的独立性和一致性。全局数据:全局数据可以被程序中的所有线程访问。但是,这可能会导致数据访问冲突,所以通常需要使用某种同步机制(如互斥锁、信号量等)来保护全局数据。线程局部存储(Thread-Local Storage,TLS):TLS是为每个线程分配的独立数据存储区域。每个线程都有自己的数据副本,因此可以避免数据访问冲突。在C++中,可以使用关键字来声明线程局部变量。栈数据。原创 2023-11-26 11:00:00 · 1109 阅读 · 0 评论 -
Qt正则表达式使用介绍QRegExp、QRegularExpression
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-25 11:30:00 · 1280 阅读 · 0 评论 -
Qt QIODevice介绍
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-25 09:45:00 · 406 阅读 · 0 评论 -
C++ Qt QDataStream用法介绍
public:// 必须声明为友元以便访问私有成员// 实现自定义类型的序列化return out;// 实现自定义类型的反序列化return in;使用自定义类型时,只需像使用内置类型那样使用<<和>>运算符即可。原创 2023-11-25 11:00:00 · 686 阅读 · 0 评论 -
C++ Qt QFile用法介绍与代码演示
QFile本身是设计用于基本的文件操作,如打开、读取、写入和关闭文件。它不直接提供解析或处理文件内容的高级功能,这些通常需要开发者自己实现。但是,Qt 提供了其他一些类和方法来辅助处理和解析文件内容。或:用于读取和写入文本或二进制文件。和:用于处理 XML 文件。和QJsonArray:用于处理 JSON 文件。对于自定义配置文件,如hello.conf,如果它是以简单的键值对形式存在的,你可以考虑使用QSettings类来读取和写入。如果它的格式比较复杂,那么你就需要手动解析它。原创 2023-11-24 22:32:12 · 1336 阅读 · 0 评论 -
C++ Qt QByteArray用法介绍
作者:令狐掌门技术交流QQ群:675120140。原创 2023-11-24 22:20:15 · 1449 阅读 · 0 评论 -
C++ Qt QVariant类型使用介绍与代码演示
QVariant类的灵活性允许 Qt 应用程序在不同组件间传递各种类型的数据,而不需要预先知道数据的确切类型。对于自定义类型,要使其能够存储在QVariant中,你需要使用宏来注册类型。以下是如何注册自定义类型以及如何将其存储和检索到QVariant的一个简单示例:public:Student();// 为了方便,这里数据类型使用publicpublic:int id_;int age_;// 注册自定义类型// ... 其余的 main 函数 ... }原创 2023-11-24 21:52:00 · 1621 阅读 · 0 评论 -
C++ Qt属性Property使用介绍
在Qt中为自定义控件添加属性时,你会希望这些属性能够被Qt Designer识别,这样设计师们可以在图形界面中直接编辑它们。为了使属性对Qt Designer友好,你需要确保属性遵循Qt的属性系统规则,并且可能需要使用Qt的元对象系统提供的特定宏和方法。使用Q_PROPERTY宏: 正如之前提到的,这个宏是用来声明属性的。它允许你为属性指定各种特性,包括读取器(getter)、设置器(setter)、通知信号等。实现获取和设置方法: 对于每个属性,你需要实现一个getter方法和一个setter方法。原创 2023-11-24 07:00:00 · 1098 阅读 · 0 评论 -
C++ Qt如何往Windows AppData目录写数据
AppData目录对于用户日常的使用并不频繁,但是它保存了许多重要的文件和设置。这个目录是默认隐藏的,为了在文件浏览器中查看这个目录,需要在文件夹选项中设置显示隐藏的文件和文件夹。注意appDataPath 的结果是%AppData%/Roaming/项目名/, 然后又创建了MyConfig目录,在该目录中放置程序的配置文件,可以txt或者ini、json、xml等等。在使用Qt开发客户端软件时,我们可以把程序相关信息保存到AppData目录, 下次启动时读取,就可以保存程序的状态,便于用户使用。原创 2023-11-01 21:29:19 · 660 阅读 · 0 评论 -
C++ Qt QLineEdit如何响应回车事件
在Qt开发中,回车键的处理很常见,本篇博客介绍在QLineEdit里回车键的处理方法,例如下面的界面:QLineEdit回车键的处理有方式,一是链接returnPressed信号,二是用事件过滤。下面分别介绍这两种方式。原创 2023-11-01 21:17:26 · 2052 阅读 · 0 评论 -
C++ Qt数据库模块介绍
Qt是一个跨平台的C++应用程序开发框架,它提供了许多用于处理数据库的工具和库。Qt的数据库模块允许您与各种不同的数据库系统进行交互,包括SQLite、MySQL、PostgreSQL、Oracle等。原创 2023-10-26 10:59:48 · 224 阅读 · 0 评论 -
c++ qt连接操作sqlite
SQLite是一种轻量级的数据库管理系统,源码有C语言编写,没有第三方依赖,在sqlite官网下载源码后,可以直接在程序中使用,例如,我下载源码后,直接加入到项目中进行编译。SQLite具有以下特点:嵌入式数据库:SQLite是一种嵌入式数据库,意味着它不需要独立的服务器进程来运行,而是直接嵌入到应用程序中。这使得SQLite非常适合嵌入式设备、移动应用和桌面应用等场景。无需配置:SQLite不需要复杂的配置或管理,你只需在应用程序中引入SQLite库,就可以开始使用数据库。原创 2023-10-24 22:10:57 · 1410 阅读 · 0 评论 -
Qt事件过滤及其应用
事件过滤器可以对需要的组件接收到的事件进行过滤、以及监控,任意的QObject对象都可以作为事件过滤器使用。需要注意以下两点: (1)事件过滤器的实现,需要重写eventFilter()函数。 (2)组件要想被监控,则需要通过installEventFilter()安装事件过滤器 例如,禁止编辑框输入字母,只能输入数字,这时候需要用到事...原创 2019-10-24 18:47:33 · 414 阅读 · 1 评论 -
Linux POSIX C/C++线程API介绍与代码演示
Linux POSIX API(Application Programming Interface)是一组用于编写可移植的多线程、进程间通信、文件操作等系统级应用程序的标准接口。它遵循POSIX(Portable Operating System Interface for Unix)标准,POSIX是一组定义了操作系统接口的标准,旨在提高可移植性和互操作性。Linux POSIX API提供了许多函数和数据类型,用于创建和管理线程、进程间通信、文件操作、信号处理、互斥锁、条件变量等。原创 2023-08-10 22:17:35 · 653 阅读 · 0 评论 -
Linux C++ 网络编程基础(2) : TCP多线程一个server对应多个client
Linux POSIX线程库提供了一组函数来创建、管理和同步线程。:创建一个新的线程。return 0;:等待一个线程的结束。return 0;:初始化一个互斥锁。return 0;:初始化一个条件变量。return 0;原创 2023-08-10 21:48:47 · 1678 阅读 · 0 评论 -
Linux C++网络编程基础(1):TCP服务端与客户端的实现
这两段代码分别实现了一个简单的服务器和客户端。服务器创建一个socket,绑定到一个特定的端口,并开始监听这个端口。当一个客户端连接到这个端口时,服务器接收客户端发送的消息,然后向客户端发送一个响应。在Linux环境下,我们可以使用socket编程来实现网络通信。下面是一个简单的C++版本的客户端和服务端的示例代码。这只是一个非常基础的示例,实际的网络编程可能会涉及到更复杂的情况,比如多线程或者非阻塞IO等。客户端创建一个socket,连接到服务器的特定端口,发送一个消息,然后等待服务器的响应。原创 2023-08-07 16:48:07 · 1423 阅读 · 0 评论 -
C++ weak_ptr 使用方法
介绍了shared_ptr的用法,本篇博客介绍weak_ptr 的用法。原创 2023-10-10 00:00:53 · 149 阅读 · 0 评论 -
C++智能指针shared_ptr使用详解
shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象。shared_ptr使用,每一个shared_ptr的拷贝都指向相同的内存。每使用它一次,内部的引用计数加1,每析构一次,内部的引用计数减1,减为0时,释放所指向的堆内存。shared_ptr内部的引用计数是安全的,但是在多线程时对象的读取需要加锁。原创 2023-10-09 23:46:43 · 1131 阅读 · 0 评论 -
vscode ssh linux C++ 程序调试
vscode调试c++程序相比vs2022要复杂很多,vs2022可以"一键运行调试",vscode则需要自己配置。vscode调试程序时,会在当前工作目录产生.vscode目录, 该目录有两个重要文件和tasks.json, 下面介绍两种调试方法: 手动调试和自动调试。原创 2023-10-09 23:41:54 · 754 阅读 · 0 评论 -
QOpenGLWidget显示图片
Qt显示图片的控件有很多,用QLabel,或者直接在界面上画出来。QOpenGLWidget是Qt5之后用来渲染OpenGL控件,使程序员对OpenGL的操作更简单,本文讲解用QOpenGLWidget来显示图片,后续讲解用QOpenGLWidget来显示视频。方法如下:1.在控件栏找到OpenGLWidget,拖到界面上2. 右键该控件提升为MyGLWidget, Qt提升控件类似于MFC的控...原创 2018-05-14 23:22:01 · 28975 阅读 · 14 评论 -
QSplitter:Qt分裂器布局详细介绍与代码实现
Qt QSplitter分裂器布局原创 2022-01-22 21:15:12 · 7650 阅读 · 0 评论 -
Qt复杂控件之QDockWidget用法介绍
可以使用样式表自定义QDockWidget的标题栏。具体的操作过程如下:1.设置QDockWidget的标题栏隐藏,让自定义的控件成为标题栏。2.在新建的QWidget中添加需要的控件,如标题文本、关闭按钮等。3.使用样式表美化标题栏和其中的控件。" "}");运行上述代码后,可以看到QDockWidget的标题栏已经被自定义化了。在新建的QWidget中,我们添加了一个QLabel控件来显示标题文本,添加了一个QPushButton来表示关闭按钮。原创 2023-06-10 00:14:33 · 2539 阅读 · 0 评论