Qt中Q_D和Q_P的作用
使用d和q指针是为了二进制兼容,更新dll动态库时,老版本不需要重新编译机可以正常运行。
Q_D是宏定义,如下所示,
#define Q_D(Class) Class##Private * const d = d_func()
假定类名为A,通过d_func()返回APrivate的指针。
定义使用Q_D类
.h文件:
class ProjectPrivate;
Class Project : publci QObject
{
//xxx
protected:
//定义无需释放的指针
QScopedPointer<ProjectPrivate> d_ptr;
}
.cpp文件:
Project::Project(QObject *parent):QObject(parent), d_ptr(new ProjectPrivate())
{
Q_D(Project);
d.q_ptr=this;
//xxx
}
定义Q_Q类
.h文件:
class ProjectPrivate : publci QObject
{
//xxx
protected:
Project * q_ptr;
//xxx
}
这样,Q_D可以获取d变量执行类APrivate
Q_Q可以获取q变量指向类A
Qt中Q_D和Q_P的作用相关推荐
- Qt中Q_D宏及d指针
原文标题:d指针在Qt上的应用及实现 原文链接:http://blog.csdn.net/rabinsong/article/details/9474859 正文: Qt为了使其动态库最大程度上实现二 ...
- QT中QDebug的使用
QT中QDebug的使用 QDebug作用 使用前提 使用方法 方法1 类似c++的cout函数 方法2 构造函数直接引入参数 2.1 字符串拼接 2.2 格式化输出 参考博客 QDebug作用 qD ...
- Qt中exec函数的作用
Qt中的exec()方法到处可见,例如: QCoreApplicaton::exec() QApplication::exec() QDialog::exec() QThread::exec() Q ...
- QT中的D指针与Q指针
了解QT中引入D指针的初衷前需要了解下二进制兼容 1. 什么是二进制兼容 二进制兼容是针对动态链接库而言的,如果你的源代码已经编译成为可执行文件了,其中你调用了一些动态库,后来你为这个动态库进行了更新 ...
- Qt中的 Size Hints 和 Size Policies
sizeHint 这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeH ...
- QT 中 关键字讲解(emit,signal,slot)以及使用
Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法.作为一种通用的处理机制,信号与反应槽非常灵活,可以携 ...
- Qt中的模型视图设计模式
文章目录 1 初探Qt中的模型视图设计模式 2 模型视图中的索引 3 模型中的数据组织方式初探 1 初探Qt中的模型视图设计模式 模型视图设计模式的核心思想: 模型(数据)与视图(显示)相分离. 模型 ...
- Qt中的QLabel组件
文章目录 1 QLabel组件 1.1 QLabel简介 1.2 图片自适应 QLabel 的大小 1 QLabel组件 1.1 QLabel简介 QLabel组件: QLabel用于显示一个提示性的 ...
- 【Qt】 Qt中实时更新UI程序示例
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 实时更新UI(非信号与槽) 04. 实时更新UI(信号与槽) 05. 源码下载 06. 附录 01. 概述 Qt在运行时会 ...
最新文章
- Linux SSH无交互式访问配置
- 史上比较用心的纯代码实现 AutoLayout
- leetcode 464. Can I Win | 464. 我能赢吗(博弈论,动态规划)
- 西门子plm_西门子的Teamcenter、TIA Portal、NX MCD是如何结合在一起的
- 卡方检验检验水准矫正_【2008.】趋势性卡方检验专题讨论
- python元编程_python元编程详解(3)
- excel 两列数据怎么把组合的可能全部做出来?
- 哈工程816计算机专业考研资料,哈尔滨工程大学计算机科学与技术学院816计算机专业基础综合(自命题①数据结构,②计算机组成原理)历年考研真题汇编.pdf...
- 序列化(串行化)- 使用BinaryFormatter进行序列化
- Redmi K30S更多细节曝光:骁龙865加持 提供多款配色
- python计算两字符串中的位置_从Python中的字符串中获取两个字符
- 计算机网络参数怎么看,电脑显示器参数详解 看完秒懂! 显示器参数怎么看?...
- ubuntu从命令打开终端
- iOS应用程序瘦身的静态库解决方案
- Django项目:CRM(客户关系管理系统)--41--33PerfectCRM实现King_admin编辑整张表限制
- 钉钉、微信产品大PK,基因已经决定了结果
- Java与C++的区别
- VMware10安装CentOS6.7
- EXCEL之画带数据点的折线图只有点没有线
- Python打包出现 failed to execute script xxx解决方法