随笔分类 -  Qt-源码

摘要:版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/nixiaoxianggong/article/details/101177283 使用Qt4,在QtCreator中,将光标放在QPush 阅读全文
posted @ 2019-10-02 19:56 findumars 阅读(2062) 评论(0) 推荐(0) 编辑
摘要:本文翻译自 Policies/Binary Compatibility Issues With C++ 二进制兼容的定义 如果程序从一个以前版本的库动态链接到新版本的库之后,能够继续正常运行,而不需要重新编译,那么我们就说这个库是二进制兼容的。 如果一个程序需要重新编译来运行一个新版本的库,但是不需 阅读全文
posted @ 2019-09-26 23:44 findumars 阅读(712) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/a844651990/article/details/78801518 在分析源码之前,我们先来介绍下Pimpl机制。。。 Pimpl机制介绍 阅读全文
posted @ 2019-07-26 22:52 findumars 阅读(782) 评论(0) 推荐(0) 编辑
摘要:Inside Qt 系列 QObject这个 class 是 QT 对象模型的核心,绝大部分的 QT 类都是从这个类继承而来。这个模型的中心特征就是一个叫做信号和槽(signaland slot)的机制来实现对象间的通讯,你可以把一个信号和另一个槽通过 connect(…) 方法连接起来,并可以使用 阅读全文
posted @ 2018-08-31 19:35 findumars 阅读(2412) 评论(0) 推荐(0) 编辑
摘要:Qt为了使其动态库最大程度上实现二进制兼容,引入了d指针的概念。那么为什么d指针能实现二进制兼容呢?为了回答这个问题,首先弄清楚什么是二进制兼容?所谓二进制兼容动态库,指的是一个在老版本库下运行的程序,在不经过编译的情况下,仍然能够在新的版本库下运行;需要经过编译才能在新版本下运行,而不需要修改该程 阅读全文
posted @ 2018-08-31 18:23 findumars 阅读(1209) 评论(0) 推荐(0) 编辑
摘要:Translated by mznewfacer 2011.11.16 首先,看了Xizhi Zhu 的这篇Qt之美(一):D指针/私有实现,对于很多批评不美的同路人,暂且不去评论,只是想支持一下Xizhi Zhu,在引用一下Jerry Sun的话,“C++需要宏定义就像需要设计模式一样。也许你不知 阅读全文
posted @ 2018-08-31 18:17 findumars 阅读(788) 评论(0) 推荐(0) 编辑
摘要:c++中的宏 #define A 3.14 展开后把A替换为B #define A(a) #a 展开后用a的字符串替换A(a) #define A(a) a##B 展开后把a和B的字符串连接起来后替换A(a) 源码地址:GitHub 在Qt中,用了不少的宏。最常见的就是Q_OBJECT Q_OBJE 阅读全文
posted @ 2018-02-02 04:42 findumars 阅读(1756) 评论(2) 推荐(0) 编辑
摘要:我们进入 qt/src 文件夹。你可能对这里的目录名时曾相识,因为几乎这里的所有文件夹名都对应着 Qt 的模块的名字:gui,network,multimedia等等。我们从最核心的 QtCore 开始。这个模块对应的是corelib文件夹。 首先我们要去寻找 QObject 这个类。之所以选择 Q 阅读全文
posted @ 2018-02-02 01:39 findumars 阅读(2465) 评论(0) 推荐(0) 编辑
摘要:能把opencv的源码也进行调试吗?(需要pdb文件才行)1.我是用的Qt Creator,然后"工具\选项\调试器\概要\源码路径映射"中,选择"添加Qt源码",目标路径是Qt的源码路径,比如是"C:\Qt\Qt5.7.0\5.7\Src", 源路径是Qt Creator自动补充的。2.按照这种方 阅读全文
posted @ 2017-08-26 07:35 findumars 阅读(1651) 评论(0) 推荐(0) 编辑
摘要:gcc -E filename.cpp 会生成 filename.cpp 的预处理文件,这样就能看到宏展开后的代码,用于理解和调试宏非常有帮助。 gcc -E filename.cpp 会生成 filename.cpp 的预处理文件,这样就能看到宏展开后的代码,用于理解和调试宏非常有帮助。 gcc 阅读全文
posted @ 2017-08-14 20:33 findumars 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/houqd2012/article/details/25070987 阅读全文
posted @ 2017-07-21 21:22 findumars 阅读(306) 评论(0) 推荐(0) 编辑
摘要:研究这个问题的起因发现使用<=比较时间的不准确,所以怀疑是一个浮点数(Delphi里的time就是一个浮点数)。结果却发现是一个int 但是整数的比较,为什么会不准确呢?不是很理解。。。非得减去一秒之后,比较才准确。让我再想想。。。 看到里面有一个QDateTimePrivate,略加研究之后发现 阅读全文
posted @ 2017-07-18 20:39 findumars 阅读(5883) 评论(0) 推荐(0) 编辑
摘要:上一次关注Qt Lighthouse是在6月初,可是现在都8月底了。时间真快... Lighthouse 是 QPA(Qt Platform Abstraction) 项目的名字,它使得将Qt移植到新的平台变得比较简单。尽管现在它已经完全融入到了Qt主干代码中,lighthouse作为独立项目已经不 阅读全文
posted @ 2017-02-03 07:16 findumars 阅读(1971) 评论(0) 推荐(0) 编辑
摘要:Translated by mznewfacer 2011.11.16 首先,看了Xizhi Zhu 的这篇Qt之美(一):D指针/私有实现,对于很多批评不美的同路人,暂且不去评论,只是想支持一下Xizhi Zhu,在引用一下Jerry Sun的话,“C++需要宏定义就像需要设计模式一样。也许你不知 阅读全文
posted @ 2017-01-26 18:04 findumars 阅读(1419) 评论(0) 推荐(0) 编辑
摘要:QtCreator采用插件体系结构。主程序启动插件管理器(PluginManager),再通过插件管理器加载其插件,QtCreator的所有功能均使用插件实现。 我们先来分析主程序对插件管理器的主要操作: 从上面的过程,可以看出一共对插件管理器做了5件事情,依次为 1、插件管理器先设置了一些环境变量 阅读全文
posted @ 2017-01-23 17:26 findumars 阅读(2646) 评论(0) 推荐(0) 编辑
摘要:第一次看Qt源代码的人都会被其代码所迷惑,经常会看到代码中的d_ptr成员、d_func(函数)和Q_DECLARE_PRIVATE等奇怪的宏,总是让人一头雾水,下面这篇文章转自http://www.qkevin.com/archives/31,它很好的向我们介绍了Qt源代码的编写习惯,为我们看Qt 阅读全文
posted @ 2017-01-11 19:32 findumars 阅读(2323) 评论(0) 推荐(0) 编辑
摘要:前言:分析Qt的代码也有一段时间了,以前在进行QT源码解析的时候总是使用ue,一个函数名在QTDIR/src目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法,就是利用Qt Creator这个IDE。 带来的好处是: 1. Qt Creator可以很方便的跟踪 阅读全文
posted @ 2016-11-22 19:44 findumars 阅读(619) 评论(0) 推荐(0) 编辑
摘要:将数据存储为一个Private结构体类型的成员变量d: <qvariant.cpp> <qvariant.h> QVariant支持的数据类型: 数据类型转换: 以下数据类型可以自动转换 可通过成员函数bool QVariant::canConvert ( Type t ) const确定是否可执行 阅读全文
posted @ 2016-11-07 19:12 findumars 阅读(2669) 评论(0) 推荐(0) 编辑
摘要:原文:http://blog.csdn.net/oowgsoo/article/details/1529284 我感觉oowgsoo兄弟写的分析相当透彻,赞! 1.试验代码: QObject是Qt类体系的唯一基类,就象MFC中的CObject和Dephi中的TObject,是Qt各种功能的源头活水, 阅读全文
posted @ 2016-10-26 18:51 findumars 阅读(592) 评论(0) 推荐(0) 编辑
摘要:QPointer是一个指针封装类,其作用类似于智能指针,但是它最大的特点应该是在指针的控制上,它希望一个Qt的指针(当然是从QObject派生的)可以同时被多个类拥有,这在界面编程中当然是很常见的事情了,但是当这个指针被删除时,我们不希望再找到那两个界面类然后通知它们,相反我们希望这两个界面类可以直 阅读全文
posted @ 2016-09-30 21:08 findumars 阅读(1176) 评论(0) 推荐(0) 编辑