目录

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解析相关推荐

  1. Qt文档阅读笔记-Fortune Client Example实例解析

    目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...

  2. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

  3. Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...

  4. Qt文档阅读笔记-Rotations Example相关

    Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...

  5. Qt文档阅读笔记-QWebEngineView及QML WebEngineView

    这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...

  6. Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)

    moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...

  7. Qt文档阅读笔记-对Style Plugin Example实例的解析

    目录 前言 Style Plugin Example SimpleStylePlugin Class 定义 SimpleStylePlugin Class 实现 main()函数 The Simple ...

  8. Qt文档阅读笔记-QSet官方解析及实例

    目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...

  9. Qt文档阅读笔记-QML Canvas的官方解析及实例

    目录 官方解析 博主例子 官方解析 Canvas可以用于画直线或曲线,简单或复杂的形状,图形,图片,并且他能加文字,颜色,阴影,和颜色梯度,和其他的装饰,可以进行低像素操作.Canvas可以保存成图像 ...

最新文章

  1. 面试再被问到 ConcurrentHashMap,把这篇文章甩给他!
  2. Image Super-Resolution Using Deep Convolutional Networks
  3. Android中实现双击屏幕跳转
  4. E打开https网站时,提示此网站的安全证书有问题(证书无效)
  5. 国科大prml15-基于浅层模型的计算机视觉--以人脸识别为例
  6. 蚂蚁金服OceanBase挑战TPCC | TPC-C基准测试之存储优化
  7. codeforces CF986C AND Graph 建圖 dfs
  8. mysql fixed数据类型_fixed数据类型
  9. Spring boot如何打war包发布到tomcat
  10. 深度学习优化算法大全系列7:NAdam,算法选择,调参
  11. HDU6080(很水的计算几何+floyd)
  12. 2.7 SLD参考标准与GeoServer扩展
  13. CV 经典主干网络 (Backbone) 系列: 开篇
  14. 解决使用yum安装软件时出现GPG-Key的问题
  15. Elasticsearch 学习(二).实战使用
  16. Keil环境下完成一个基于STM32汇编程序的编写
  17. C#oop体检套餐管理系统
  18. Azure App Service Plan
  19. NB-IoT门磁报警器 物联网门磁传感器 电子封条报警器
  20. 区块链技术与应用(赵其刚等)课后题答案

热门文章

  1. 互联网“高薪榜”曝光,物联网将接棒?
  2. 互联网把农业推向“科技仙境”
  3. 飞秋(FeiQ)2012版择日发布
  4. 【飞秋怎么用】企业应用
  5. 著名模拟鼠标点击软件小点点被收购
  6. 根据url提取网站域名的方法小结
  7. 平时喜欢使用的软件总结 欲善其事,必先利其器
  8. Python 基础,不看会后悔哦!
  9. 2019年最好的前端进阶课,合同保障不过20w年薪全额退款!
  10. 经典面试题(43):以下代码将输出的结果是什么?