首页 > 技术文章 > QT学习笔记(day01)

HaroldC 2020-07-31 14:25 原文

QT中的对象树

一定程度上简化了内存回收机制:当创建的对象 指定的父亲是由QObject或者Object派生的类时候,这个对象被加载到对象树上,当窗口关闭掉时候,树上的对象也都会被释放掉

信号和槽

通过使用connect()方法,将信号与槽函数绑定。

connect()方法参数说明:

​ connect(信号发送方,发送的信号,信号接收方,处理的槽函数)

自定义信号和槽函数

  1. 自定义信号写在 signals 下

    1. 返回值是void

    2. 只需要声明,不需要实现

    3. 可以有参数,可以发生重载

  2. 自定义槽函数,写在public下 或者是全局函数 或者 写在public slot 下或者 lambda表达式

    1. 返回值是void

    2. 需要声明,也需要实现

    3. 可以有参数,可以发生重载

  3. 当信号和槽发生重载后,再使用时要使用函数指针明确指出函数地址

拓展

  1. 信号可以连接信号
  2. 可以使用disconnect()断开信号和槽
  3. 多个信号可以连接到同一个槽函数
  4. 信号和槽函数的参数类型必须一一对应,信号的参数个数可以多余槽函数的参数个数,反之不行。

QString转为char*

首先调用Qstring字符串的toUtf8()方法转为QByteArray数据类型,再调用data()方法转为char*类型。

例:

QString str = "this is a Qstring!";
char * pstr = str.toUtf8().data();

推荐阅读