QT基础概念——对象树和信号槽

QT特征

  1. 面向对象,空间可重用性
  2. 控件之间的相互通信(signal和slot)
  3. 友好的联机帮助,联机参考文档
  4. 用户自定义控件

QtCreator:跨平台IDE

QtCreator官方下载链接: https://download.qt.io/
清华大学镜像:清华镜像
QT在线帮助文档:QT Assistant Manual

对象树

概念:QT中类的继承关系,在一定程度上简化了对象的释放
1. 继承于QObject类的,无需手动释放堆内存
2. 添加到QObject或QObject派生类的对象的子成员,无需手动释放内存

信号槽

Lamda表达式定义函数

[可访问外部变量](参数)->返回值类型{函数体}

  • 值传递,不可以改变外部变量:
    [=]\(参数\)->返回值类型{函数体}
  • 引用传递,可以改变外部变量:
    [&]\(参数\)->返回值{函数体}[=]\(参数\)mutable->返回值{函数体}
int num1=1, num2=2;
    void (*pFun)(int&) = [](int& n)->void{
        n = 3;
        qDebug()<<"pFun";
    };
    pFun(num1);

Signal & Slot

概念:是观察者模式的一种简易方式
使用connect函数为信号与槽建立好链接,当信号广播(被触发)时,槽做出相应的处理(信号来自被观察者,槽来自观察者)
connect(被观察者,信号,观察者,槽)
connect(被观察者,信号,Lamda表达式匿名函数)
connect(被观察者,SIGNAL(信号函数),观察者,SLOT(槽函数))

  • 信号(Signal):函数声明,无需实现;系统大多数类都内置了信号,开发者也可以自定义信号
  • 槽(Slot):本质是一个函数,是类的成员函数,有声明且有实现体;系统大多数类也内置了槽,开发者也可以自定义槽

常用控件

  • 按钮控件:QPushButton
  • 文本控件:QLable
  • 滑动条控件:QSlider
  • 进度条控件:QProgressBar
  • 文本编辑框控件:QTextEdit
  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值