Qt类库概述

Qt SQL模块(类库)概述 Qt SQL模块之 C++类库,为数据库提供驱动程序层、应用编程接口层和用户界面层 名称空间: QSql:包含Qt SQL模块中使用的各种标识符 类名称列表: QSqlDatabase 处理与数据库的连接 QSqlDriver 用于访问特定数据库的抽象基类 QSqlDriverCreator 为特定驱动程序类型提供SQL驱动程序工厂的模板类 QSqlDriverCreatorBase 用于SQL驱动程序工厂的基类 QSqlDriverPlugin 定制QSqlDriver插件的 阅读详情

前言

这里主要做一些笔记加上个人的理解和随笔, 参考书籍<<Qt5.9 c++开发指南>>。


Qt类库概述

3.1 Qt核心特点

3.1.1 概述

  • Qt本身不是语言,是跨平台的C++开发类库,为GUI而生,当然也可以面向学习c++等语言
    控制台,类似linux中的gcc吧。
  • 特点
    • 信号和槽
    • 对象属性
    • 元对象编译器MOC(Meta-Object Compiler)
    • Qt Core是Qt的核心,其他模块都依赖于该模块

随笔:
信号与槽也不是新东西,参考操作系统相关的信号(中断)等知识,在内核态理解为任务。在函数指针的回调也有异曲同工之妙
MOC 简单理解是C中的宏定义,简单说就是编译预处理相关的,静态联翩
Qt Core应该很多其他的窗口布局继承了这个核心吧, 而且强相关is-a关系

3.1.2 元对象系统(Meta-Object System)

  • Qt的原对象系统(提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统
  • 元对象系统由三个基础组成
    • QObject类是所有使用元对象系统的类的基类。
    • 在一个类的private部分声明Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽。
    • MOC为每个QObject的子类提供必要的代码来实现元对象系统的特性。
      构建项目时,MOC工具读取C++源文件,发现Q_OBJECT宏,为这个类生成另外一个包含有元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被编译和连接。
  • 除了信号与槽机制,还有一些其他功能
	QObject::metaObject()
	QObject *obj = new QPushButton;
	obj->metaObject()->className();	//返回"QPushbutton"
	***
	QMetaObject::newInstance()函数创建类的一个新的实例
	***
	QObject::inherits(const char *className) 函数判断一个对象实例是否是名称为className的类或QObject的子类的实例,例如:
	QTimer *timer = new QTimer;			//QTimer是QObject的子类
	timer->inherits("QTimer");		//true
	timer->inherits("QObject");			//true
	timer->inherits("QAbstractButton");		//false, 不是QAbstractButton的子类
	***
	QObject::tr() 和 QObject::trUtf8()函数翻译字符串,多语言界面设计
	***
	QObject::setProperty(), QObject::property()用于通过属性名称动态设置和获取属性值
	***
	QObject *obj = new QMyWidget;即 QWidget * widget = qobject_cast<QWidget*>(obj);类似c++的多态
	

3.1.3 属性系统

这部分暂折叠,后续使用再补充

3.1.4 信号与槽

这部分暂折叠,前面有一定认知。


3.2 Qt全局定义

3.2.1 数据类型定义

Qt数据类型等效定义字节数
qint8signed char1
qint16signed short2
qint32signed int4
qint64long long int8
qlonglonglong long int8
quint8unsigned char1
quint16unsigned short2
quint32unsigned int4
quint64unsigned long long int8
qulonglongunsigned long long int8
ucharunsigned char1
ushortunsigned short2
uintunsigned int4
ulongunsigned long8
urealdouble8
qfloat16float2

其中qreal缺省是8字节double类型浮点数,如果Qt使用-qreal float选项进行配置,就是4字节float类型的浮点数。
qfloat16是Qt5.9.0中心增的一个类,用于表示16位的浮点数,要使用qfloat16,需要包含头文件QFloat16

3.2.2 函数

这里不展开,很少使用这些函数,可以使用c++的一些limit相关或math相关

3.2.3 宏定义

不展开


3.3 容器类

不做展开,类似c++中的STL


3.4 容器类的迭代

这里不做展开,大概类似c++中的迭代器,以及增加了for(auto x:aary)这类的东西,后续通过代码做专项


3.5 Qt类库的模块

这里不做展开

C++/Qt 网络 基于Qt框架的C++编程,本章主要内容包括Qt的另一项支持——网络。 阅读详情

相关推荐

Qt系列文章之十一 (Qt 相关模块介绍)

文章目录前言Qt类库的模块分类介绍Qt基本模块Qt附加模块Qt 增值模块Qt 技术预览模块Qt 工具 前言   Qt的模块相当多,不去分类看,可以看得眼花缭乱,不知道从何处开始看起,仔细分类后其实有没有多少,一共可以分为四个大模块和1个工具库,有兴趣了解更多的可以自己去Qt官方文档中搜索 All Modules 关键词,就一目了然了,好了,下面我开始逐步详细讲解每个大模块的作用和它包含的小模块的含义。上菜! Qt类库的模块分类介绍   Qt类库里大量的类根据功能分为各种模块,这些模块又分为几大类: Qt

波风水门 964

Qt学习笔记(5) — Qt 类库【C++】

Qt 类库学习

zypf_lover的博客 2657

用C/C++实现QT开发

Qt是一个跨平台的C++图形用户界面应用程序开发框架。它既可以用于开发GUI程序,如桌面应用程序和移动应用程序,也可以用于开发非GUI程序,如控制台工具和服务器。Qt是面向对象的框架,并且使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展并允许真正的组件编程。本文介绍了如何使用Qt进行开发。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 2632

QT常用GUI类库(基础代码)

QT常用GUI类库基础实现代码

Qingyuanlong的博客 1835

Qt开发总结(3)——Qt类库概述

Qt归根到底是一个强大的C++类库,这些大量的类根据功能分为各种模块。 Qt基本模块(Qt Essentials) Qt基本模块提供了Qt在所有平台的基本功能,它们在所有的开发平台和目标平台上都能用。Qt跨平台的特性基本在这个模块实现。 模块 描述 Qt Core Core non-graphical classes u...

学习雷锋好榜样 1763

Qt的历史和演变

随着时间的推移,Qt逐渐发展成为一个功能强大的框架,支持多个平台,包括Windows、macOS、Linux和嵌入式系统等。Qt提供了一套丰富的类库和工具,用于创建各种类型的应用程序,包括桌面应用、移动应用和嵌入式应用。总结起来,Qt是一个功能强大的跨平台应用程序开发框架,它具有丰富的类库和工具,使开发者能够快速创建高质量的应用程序。随着时间的推移,Qt不断发展和演变,适应不断变化的技术和市场需求,成为开发者们的首选工具之一。本文将详细介绍Qt的历史和演变,以及一些相关的源代码示例。方法显示标签,并通过。

CodeVorter的博客 442

基于C++的Qt(三)Qt类库概述

Qt是一个用标准C++编写的跨平台开发类库,它对标准C++进行了扩展,引入了元对象系统、信号与槽、属性等特性。 Qt类库中大量的类以模块形式分类组织的,包括基本模块和扩展模块等。 Qt本身并不是一种编程语言,它本质上是一个跨平台的C++开发类库,是用标准C++编写的类库,它为开发GUI应用程序和非GUI应用程序提供了各种类。 Qt Core模块是Qt类库的核心,所有其他模块都依赖于此模块,如果使用...

yang_jianfeng的博客 1777

QT编程从入门到精通之三十五:“第六章:Qt类库”之“6.1 Qt核心特点”之“6.1.1 Qt内库概述”

QT编程;从入门到精通; 第六章:Qt类库; 6.1 Qt核心特点;6.1.1 Qt内库概述

LuckyHanMo的博客 690

3QT类库概述

QList维护一个指针数组QLinkedList链式列表,非连续,所以不能下表访问QVector在连续的内容上保存QStack继承自QVectorQQueue继承自QListQSet不允许重复,查找快速QMap<K,T>会按照Key的顺序存储QMap<K,T>一个Key会关联多个值QHash<K,T>存储无顺序,查询快QMultiHash<K,T>可对应多个值。

dotnethello的博客 345

QT跨平台开发中文手册全套

跨平台开发是一个被广泛讨论的话题,尤其是在需要为不同操作系统部署软件的开发者之间。Qt,作为一种先进的跨平台C++框架,不仅仅是一个GUI工具包,而是一个强大的软件开发平台,具备了从单一代码库创建复杂应用程序的能力。它支持几乎所有的现代操作系统,包括Windows、macOS、Linux、iOS和Android等。Qt的多用途性和灵活性使其成为开发图形用户界面(GUI)应用程序的首选工具,它丰富的类库和模块化设计可以帮助开发者快速实现各种功能,从数据可视化到网络通信。

weixin_42173218的博客 1133

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

《Qt 5.9 C++开发指南》第3章 Qt类库概述【详细摘要】

Qt是一个用标准C++编写的跨平台开发类库,它对标准C++进行了扩展,引入了元对象系统、信号与槽、属性等特性,使得应用程序开发变得更高效。本章介绍Qt的这些核心特点,对于理解和编写高效的Qt C++程序是大有帮助的。本章还介绍&lt;QtGlobal&gt;头文件中Qt的一些全局定义,包括数据类型、函数和宏等,介绍Qt的容器类及其相应迭代器的使用方法。这些全局定义和容器类在程序中经常用到,了解其原...

HongAndYi的博客 5265

RK3588平台-ES8388音频驱动调试与设备树配置实战

本文详细解析了在RK3588平台上调试ES8388音频驱动的实战过程。内容涵盖Linux音频驱动的三层架构(Machine、Platform、Codec),并重点提供了设备树(DTS)的完整配置示例,包括I2C节点、声卡节点及音频路由设置。文章还分享了驱动加载验证、amixer调试命令以及常见问题(如无声、变调)的排查思路,旨在帮助开发者快速完成RK3588与ES8388的音频系统集成。

mango的博客 806

03-2_Qt 5.9 C++开发指南_Qt全局定义、容器类、容器类的迭代器、Qt类库的模块

QtGlobal>头文件包含了Qt类库的一些全局,包括基本数据类型,函数和宏。一般的Qt类库头文件都会包含该文件,因此不用显式包含此头文件。详见《Qt5.9 c++开发指南》<QtGlobal>头文件中定义了很多宏,以下一些是比较常用的:(仅做简单介绍,详见《Qt5.9 c++开发指南》)Qt 的容器类比标准模板库 (STL)中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的,而且它们进行了速度和存储优化,因此可以减少可执行文件的大小。

分享学习成长历程,Winter is coming! 780

三相Vienna整流器过零点电流畸变?试试这个SVPWM调制波补偿技巧

本文针对三相Vienna整流器在电流过零点附近出现的电流畸变问题,提出了一种基于SVPWM调制波补偿的有效解决方案。该方法通过注入零序分量重构占空比,巧妙解决因拓扑约束导致的调制矛盾,在基本不增加计算复杂度的前提下,显著平滑电流波形,降低THD。

weixin_29212867的博客 114

lgv20刷twrp_LG港版v20 root

这是LG港版v20 root,整理了一下有关LG港版v20的官方固件包了,有没有需要的呢,这里把固件包整理一下也是方便大家以后好下载了,因此有一些机友还是不知道在哪里下载官方的rom包,在这里说的固件rom包也就是原版的系统包了,大家可以放心的使用,这些系统包也都是支持线刷的,大家下载下来解压出来根据里面的相关教程来操作就可以了,很简单的,如果你也需要的话就一起来看看吧。软件提示注意!! 此过程会...

weixin_33212263的博客 5387

QT入门看这一篇就够(详解含qt源码)

qt教程,qt项目,qt下载,qt项目实战,qt多线程,包括Qt环境搭建、Qt数据类型、Qt核心、Qt基础空间、Qt对话框、Qt数据模型、Qt文件处理、Qt高级控件、Qt项目开发,Qt核心对象Object、Qt的demo含源码等

啊渊的专栏 12万+

OpenWrt路由开启DDNS+端口转发进行外网访问

OpenWrt路由开启DDNS+端口转发进行外网访问(LuCI界面实现)--开篇一、准备工作二、开机!三、连接--结尾 –开篇 本篇适用于一切装有OpenWrt系统的路由器/软路由,只要你保证有WAN接口和一个光猫,甚至你不需要有LAN接口(当然前提是你能连接路由器的WIFI进后台,不然你只能通过LAN进后台咯)。所有的配置过程都是基于LuCI界面来的,当然大神们一般都通过SSH登陆路由使用命令配置,但我也不会啊,只能给个有GUI界面的教程了。 一、准备工作 一个装有OpenWrt系统的路由器/软路由并

秋之颂的博客 9万+

快速阅读《QT5.9 c++开发指南》1

简介:《QT5.9 c++开发指南》的作者是和i三位主要从事地球物理探测仪器设计、数据处理方法研究和软件开发等工作的博士们,这本书以QT Widget为主要内容,比较全面地教授了QT开发桌面程序的方方面面;最为关键的是提供了非常棒的例子代码。因此十分值得参考。我利用周末时间,快速进行学习,这里背书如下:目录:书共分为16章,每章涉及一个主题或Qt的功能模块,涵盖了Qt应用程序开发的主要功能模块。人...

weixin_30843605的博客 240

Windows平台无人机仿真:从零搭建SITL环境与QGC联调

本文详细指导了在Windows平台上从零搭建无人机软件在环(SITL)仿真环境,并与QGroundControl(QGC)进行联调的完整流程。通过使用Cygwin工具链,开发者可以在没有实体硬件的情况下,模拟运行ArduPilot飞控,并通过MAVLink协议连接QGC地面站进行全功能测试,为无人机软件开发提供了一个安全、经济的虚拟沙盒环境。

weixin_29239279的博客 407

【YOLOv8科研级创新】集成HS-FPN特征融合网络,让Neck模块在参数量锐减100W的同时精度跃升

打开确保模型解析器能识别HS_FPN模块。通过将HS-FPN集成到YOLOv8中,我们实现了一个“轻量级多尺度特征融合+精准检测”的目标检测模型。这个改进不仅在工程上能提升多尺度、细粒度场景的检测效果并降低部署成本,更在科研上提供了“选择性轻量级特征融合”的创新思路——这种思路可以延伸到其他检测网络(如Faster R-CNN、SSD)的Neck模块改进中,帮你在论文中打造独特的研究点。

m0_64661770的博客 137

Qt 企业级应用开发系统学习路线

零基础快速入门 Qt Widget 框架,掌握开发工具使用,掌握 Qt Widget 常用控件和界面布局用法,仿网易云音乐界面项目实战达到企业招聘 Qt 初级开发要求 掌握 Qt 进阶部分开发技能,达到企业招聘 Qt 中级开发要求 掌握 QML 界面开发技能,很多企业要求掌握 QML

weixin_41547224的博客 1877

Swin Transformer 与 CNN 结合实现图像分类

Swin Transformer 与 CNN 结合实现图像分类。(含swin transformer 结构讲解,cnn网络搭建,代码)

这里是Mae。 5026

paip.c++ 常用类库attilax总结

paip.c++ 常用类库attilax总结   VCL: WINDOWS平台最好的类库了..推荐使用..开发效率最高. 1 QT..推荐使用..开发效率比较高. 1 GTK(GTKMM)...开发效率没有QT高。 1 STL库:C++ 标准模板库STL 1 Boost,Boost库 2 WxWidgetS/WxWindows 。不推荐 2 MFC:  已经落后n多,不推荐使用

attilax的专栏 2669

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Qt第一行代码
下一篇: libevent服务GET/POST的简单使用
帘下有白绿
博客等级 码龄12年 165粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值