Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析
目录
Multiple Inheritance Example 实例解析
Automatic Connections解析
Multiple Inheritance Example 实例解析
这个实例很简单,主要是为了引出uic的Automatic Connections
先把代码帖上来,再来简单的解析下:
源码如下:
calculatorform.h
#ifndef CALCULATORFORM_H
#define CALCULATORFORM_H//! [0]
#include "ui_calculatorform.h"
//! [0]//! [1]
class CalculatorForm : public QWidget, private Ui::CalculatorForm
{Q_OBJECTpublic:explicit CalculatorForm(QWidget *parent = nullptr);private slots:void on_inputSpinBox1_valueChanged(int value);void on_inputSpinBox2_valueChanged(int value);
};
//! [1]#endif
calculatorform.cpp
#include "calculatorform.h"
#include <QWidget>//! [0]
CalculatorForm::CalculatorForm(QWidget *parent): QWidget(parent)
{setupUi(this);
}
//! [0]//! [1]
void CalculatorForm::on_inputSpinBox1_valueChanged(int value)
{outputWidget->setText(QString::number(value + inputSpinBox2->value()));
}
//! [1]//! [2]
void CalculatorForm::on_inputSpinBox2_valueChanged(int value)
{outputWidget->setText(QString::number(value + inputSpinBox1->value()));
}
//! [2]
main.cpp
#include "calculatorform.h"
#include <QApplication>//! [0]
int main(int argc, char *argv[])
{QApplication app(argc, argv);CalculatorForm calculator;calculator.show();return app.exec();
}
//! [0]
个人觉得这个应该是为了提醒多继承,才有一个继承private Ui::CalculatorForm。
这里最关键的是下面这两个槽函数:
在ui界面里面并在界面中关联信号与槽,也没有在代码中写connect,关联信号与槽,而是使用了Automatic Connections机制处理(uic与元对象共同作用)
private slots:void on_inputSpinBox1_valueChanged(int value);void on_inputSpinBox2_valueChanged(int value);
这里使用的技术是uic编译成.h后,使用元对象自动连接,在下面的小结中将会说明。
来看看界面和各个变量名:
其中就是这个setupUi(this),这个函数是Ui::CalculatorForm里面的,通过参数this指针,使得CalculatorForm这个界面能够显示。
Automatic Connections解析
这个的主要原理是,把槽函数写成指定的格式,uic生成.h文件的时候,调用元对象的connectSlotsByName函数,从而达到自动连接的效果!
要求的槽函数格式如下:
void on_<object name>_<signal name>(<signal parameters>);
这里uic生成的.h文件中,调用了元对象系的connectSlotsByName(this)。
从而实现了自动连接!
这种方式,感觉和Spring Boot中的JPA映射数据库表名和列名一样。
下面来总结下目前3种连接信号与槽的方式:
1. 在代码中使用connect进行连接;
2. 在ui文件中,配置信号与槽;
3. 使用标准命名法利用uic与元对象连接信号与槽。
Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析相关推荐
- Qt文档阅读笔记-Fortune Client Example实例解析
目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...
- Qt文档阅读笔记-共享库的创建与调用
使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...
- Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图
Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...
- Qt文档阅读笔记-Rotations Example相关
Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...
- Qt文档阅读笔记-QWebEngineView及QML WebEngineView
这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...
- Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)
moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...
- Qt文档阅读笔记-对Style Plugin Example实例的解析
目录 前言 Style Plugin Example SimpleStylePlugin Class 定义 SimpleStylePlugin Class 实现 main()函数 The Simple ...
- Qt文档阅读笔记-QSet官方解析及实例
目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...
- Qt文档阅读笔记-QML Canvas的官方解析及实例
目录 官方解析 博主例子 官方解析 Canvas可以用于画直线或曲线,简单或复杂的形状,图形,图片,并且他能加文字,颜色,阴影,和颜色梯度,和其他的装饰,可以进行低像素操作.Canvas可以保存成图像 ...
最新文章
- 面试再被问到 ConcurrentHashMap,把这篇文章甩给他!
- Image Super-Resolution Using Deep Convolutional Networks
- Android中实现双击屏幕跳转
- E打开https网站时,提示此网站的安全证书有问题(证书无效)
- 国科大prml15-基于浅层模型的计算机视觉--以人脸识别为例
- 蚂蚁金服OceanBase挑战TPCC | TPC-C基准测试之存储优化
- codeforces CF986C AND Graph 建圖 dfs
- mysql fixed数据类型_fixed数据类型
- Spring boot如何打war包发布到tomcat
- 深度学习优化算法大全系列7:NAdam,算法选择,调参
- HDU6080(很水的计算几何+floyd)
- 2.7 SLD参考标准与GeoServer扩展
- CV 经典主干网络 (Backbone) 系列: 开篇
- 解决使用yum安装软件时出现GPG-Key的问题
- Elasticsearch 学习(二).实战使用
- Keil环境下完成一个基于STM32汇编程序的编写
- C#oop体检套餐管理系统
- Azure App Service Plan
- NB-IoT门磁报警器 物联网门磁传感器 电子封条报警器
- 区块链技术与应用(赵其刚等)课后题答案