当前位置:   article > 正文

qt 源码目录结构与类文件结构 详细解读 多图_qt项目目录结构

qt项目目录结构

Qt 源码目录结构

有些同学想看qt的源码 可能找不到地方入手
这里简单的说一下

1.首先安装qt时 一定要勾选安装了source源码才行 否则没有
这里就不多说了

2.说一下qt的结构目录吧
在这里插入图片描述

5.12.11 这是以qt版本命名的文件夹 里面包含了 源码 + qt类库

docs 文档

examples qt的实例demo

Tools 是开发工具集 比如 QtCreator mingw

vcredist 就是 vc运行库

ok 主要看一下 5.12.11

在这里插入图片描述

这一层 包含类库 和 源码src

mingw 是qt 的 然后 msvc 就是 微软的 里面就是 各种qt的 dll 比如 qt5core qt5gui

3.主要说下源码结构src
在这里插入图片描述

这么多文件夹 从哪里下手??
不要慌
因为qt 提供的类库太多了
比如各种图表 多媒体 串口 网络 打印机 xml web引擎
所以这些都不是qt的核心模块, 可以说是附带的扩展模块

所以上面的可以附选择安装和使用,

主要说一下 qtbase

在这里插入图片描述
base 里面还有不少, 安卓, opengl 数据库 gui 网络network ,

随便挑一个说一下吧 这一层基本结构都一样了

看一下 corelib
在这里插入图片描述

就看 thread 吧
在这里插入图片描述

qt 类文件结构解读

仔细看 他的文件 都带有个平台相关的后缀 为什么?

qt 跨平台啊 , 每个平台底层的实现都不一致 ,所有针对不同平台 有不同的实现

基本上qt的一个类 都是由这几个文件实现的 拿qthread 举例

qthread.h
qthread.cpp	

qthread_p.h
qthread_win.cpp
qthread_unix.cpp

//qthread_mac.cpp // mac 
//qthread_linux.cpp // linux 安卓等等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

说一下每个文件作用吧

qthread.h 为 QTherad 声明文件
实现都是在private 中 QThreadPrivate 也就是在qthread_p.h中 
然后 QTherad 与 QThreadPrivate  这俩类的实现其实都在一个cpp中实现 是在qthread.cpp
然后在继续往下 private会根据平台 比如你是win 就会调用 qthread_win.cpp 实现
你是unix 就qthread_unix.cpp 的实现

这样做有什么好处??
第一个你使用只需要关心 qthread.h 就好, 比如 qthread要更新实现,上层接口不动 ,内部就可以更改private的实现 
减少依赖和耦合   
第二个是隐藏了实现细节
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

下图是qt 类文件结构 截图

qthread.h
在这里插入图片描述

qthread_p.h
在这里插入图片描述

qthread.cpp

在这里插入图片描述

看到了吧 QThreadPrivate 与 QThread 的实现 都是在 qthread.cpp
qthread_win.cpp 看到了吧 还是基于 windows的 beginThread 进行的一层封装

在这里插入图片描述

ok 结束

看完这篇文章 对qt 源码目录结构与类文件结应该有个比较清晰的认知了吧
如果觉得不错 请给我点个赞 谢谢
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/292816
推荐阅读
相关标签
  

闽ICP备14008679号