随笔分类 -  Qt-源码

摘要:Qt为了使其动态库最大程度上实现二进制兼容,引入了d指针的概念。那么为什么d指针能实现二进制兼容呢?为了回答这个问题,首先弄清楚什么是二进制兼容?所谓二进制兼容动态库,指的是一个在老版本库下运行的程序,在不经过编译的情况下,仍然能够在新的版本库下运行;需要经过编译才能在新版本下运行,而不需要修改该程 阅读全文
posted @ 2016-06-25 04:26 findumars 阅读(514) 评论(0) 推荐(0) 编辑
摘要:Translated by mznewfacer 2011.11.16 首先,看了Xizhi Zhu 的这篇Qt之美(一):D指针/私有实现,对于很多批评不美的同路人,暂且不去评论,只是想支持一下Xizhi Zhu,在引用一下Jerry Sun的话,“C++需要宏定义就像需要设计模式一样。也许你不知 阅读全文
posted @ 2016-06-20 04:45 findumars 阅读(1814) 评论(0) 推荐(0) 编辑
摘要:QCoreApplication::processEvents 他处理的时候拿的是current不是qAppqApp的话,才是和主线程密切相关的 一直觉得QT源码复杂,有点怕,所以没怎么看 我也看不懂啊但是看个大概,还是没问题的尤其是你想知道原理的时候去看下源码,就可以了推测,很容易错连文档都可能是 阅读全文
posted @ 2016-05-12 23:01 findumars 阅读(1450) 评论(0) 推荐(0) 编辑
摘要:QT源码分析 转载自:http://no001.blog.51cto.com/1142339/282130 今天,在给同学讲东西的时候,谈到了Qt源代码的问题,才发现自己对Qt机制的了解是在太少了,而Qt的魅力也在于它的开源。因此,决定,从今天起,每天坚持进行1小时以上的源码分析,无论如何,不能间断 阅读全文
posted @ 2016-04-13 05:22 findumars 阅读(7837) 评论(0) 推荐(0) 编辑
摘要:Inside Qt 系列 QObject这个 class 是 QT 对象模型的核心,绝大部分的 QT 类都是从这个类继承而来。这个模型的中心特征就是一个叫做信号和槽(signaland slot)的机制来实现对象间的通讯,你可以把一个信号和另一个槽通过 connect(…) 方法连接起来,并可以使用 阅读全文
posted @ 2016-03-23 22:35 findumars 阅读(786) 评论(0) 推荐(0) 编辑
摘要:在研究QCoreApplication类的代码时,无意间弄明白了“d_func()”和“d指针”的来源: class Q_CORE_EXPORT QCoreApplication#ifndef QT_NO_QOBJECT : public QObject#endif{ …… Q_DECLARE_PR 阅读全文
posted @ 2016-03-23 22:24 findumars 阅读(4552) 评论(0) 推荐(0) 编辑
摘要:前面我们说过,Qt 不是使用的“标准的” C++ 语言,而是对其进行了一定程度的“扩展”。这里我们从Qt新增加的关键字就可以看出来:signals、slots 或者 emit。所以有人会觉得 Qt 的程序编译速度慢,这主要是因为在 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将 阅读全文
posted @ 2016-02-01 20:54 findumars 阅读(564) 评论(0) 推荐(1) 编辑
摘要:本来打算把《Qt学习之路》作为一个类似教程的东西,所以就不打算把一些关系到源代码的内容放在那个系列之中啦。因此今天就先来看一个新的开始吧!这个系列估计不会进展很快,因为最近公司里面要做 flex 的项目演示,所以时间不是很多啦,并且源代码也不是那么容易看的。豆子也不是 C/C++ 出身,因此看起来也 阅读全文
posted @ 2016-02-01 20:36 findumars 阅读(3265) 评论(0) 推荐(0) 编辑
摘要:http://devbean.blog.51cto.com/448512/335550 http://devbean.blog.51cto.com/448512/325581 http://devbean.blog.51cto.com/448512/326686 阅读全文
posted @ 2016-02-01 20:32 findumars 阅读(558) 评论(0) 推荐(0) 编辑
摘要:The Property System Qt提供一个类似于其他编译器供应商提供的精致的属性系统。然而,作为一个编译器和平台独立的库,Qt并不依赖于非标准编译器特性,如__property 或 [property]。Qt解决方案能在支持Qt的平台上与任何标准C++编译器一起工作。它依赖于 Meta-O 阅读全文
posted @ 2016-02-01 19:54 findumars 阅读(721) 评论(0) 推荐(0) 编辑
摘要:the Meta-Object Compiler (moc) 元对象编译器是处理Qt的C++扩展的程序。 moc工具读取C++头文件,如果它找到一个或者多个类声明包含Q_OBJECT宏。它生为那些类成一个包含元对象代码的C++源文件。元对象代码是信号与槽机制,运行时信息和动态属性系统所必需的。 mo 阅读全文
posted @ 2016-02-01 19:49 findumars 阅读(757) 评论(0) 推荐(0) 编辑
摘要:The Meta-Object System Qt元对象系统为对象之间的交互提供了信号与槽机制,运行时信息和动态属性系统。 元对象系统基于三件事: 1. Qobject类作为所有要利用元对象系统的基类。 2. 在类的private段声明Q_OBJECT 宏,以可以使用元对象特性,例如动态属性,信号与 阅读全文
posted @ 2016-02-01 19:47 findumars 阅读(415) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/SkylineSoft/articles/2046404.html 阅读全文
posted @ 2015-12-10 05:53 findumars 阅读(958) 评论(0) 推荐(0) 编辑
摘要:Qt 源码中有很多Q_Q和Q_D宏,使用这些宏的地方总会看到有q指针和d指针,查了查KDE文档,大体搞清了其中的机理,欧也!Qt的这些私有数据访问策略还是挺值得借鉴。下面就简单总结一下。 访问器 , `7 {$ C! D6 g( X发了点牢骚,Qt的成员变量get访问器命名实在有点难以接受,get访 阅读全文
posted @ 2015-12-10 05:47 findumars 阅读(442) 评论(0) 推荐(0) 编辑
摘要:QTimer源码分析(以Windows下实现为例) QTimer源码分析(以Windows下实现为例) 分类: Qt2011-04-13 21:32 5026人阅读 评论(0) 收藏 举报 windowstimerqtoptimizationcallbackobject 起源 在newsmth上看到 阅读全文
posted @ 2015-01-15 22:14 findumars 阅读(1269) 评论(0) 推荐(0) 编辑
摘要:记下好文章,慢慢看,然后加上自己心得: http://www.cnblogs.com/hicjiajia/archive/2011/08/27/2155512.html Qt源码分析之信号和槽机制http://blog.csdn.net/oowgsoo/article/details/1529411 阅读全文
posted @ 2014-10-09 06:18 findumars 阅读(1172) 评论(0) 推荐(0) 编辑