欢迎光临
我们一直在努力

QT开发第二章——信号和槽

文章目录

  • 信号和槽概念
    • 信号的本质
    • 槽的本质
  • 信号与槽使用
    • 连接信号和槽
    • 利用QT Creator生成槽代码
    • 自定义信号和槽
      • 带参信号和槽
  • 信号与槽对应关系
  • 信号与槽断开
  • Lambda表达式与槽应用
  • 信号与槽优缺点

信号和槽概念

Qt中用户每和控件交互就是一个事件,每个事件会发送信号,比如点击按钮、关闭窗口,对信号的相应就是槽。 在这里插入图片描述

信号的本质

信号是用户对按钮或窗口进行操作,产生了事件,所以信号的本质就是事件,信号的呈现方式是函数,某个事件产生了,Qt会通过特定函数通知使用者。

槽的本质

槽的本质是对信号相应的函数,与信号关联,当信号触发时,自动调用槽函数

信号只需要声明(编译器会自动生成定义,元编程),槽函数需要声明定义

信号与槽使用

连接信号和槽

connect (const QObject *sender,
const char * signal ,
const QObject * receiver ,
const char * method ,
Qt::ConnectionType type = Qt::AutoConnection )

在这里插入图片描述

利用QT Creator生成槽代码

在这里插入图片描述 头文件自动生成,声明 在这里插入图片描述 cpp生成框架,手动添加 在这里插入图片描述

自定义信号和槽

在这里插入图片描述 在这里插入图片描述 老师学生上课关联 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

带参信号和槽

在这里插入图片描述 信号参数个数必须大于等于槽函数参数,但在开发过程中最好个数匹配 在这里插入图片描述

信号与槽对应关系

  • 信号与槽一对一
  • 信号对应槽,信号再对应一个信号,比如上面,按钮对应老师,老师对应学生
  • 多个信号对应一个槽
  • 一个信号对应多个槽,多次connect即可

信号与槽断开

disconnect函数

在这里插入图片描述

Lambda表达式与槽应用

在这里插入图片描述 在这里插入图片描述

信号与槽优缺点

优点:低耦合 信号无需关心连接了哪些槽,槽也不需关心关联了哪些信号,支持信号槽机制的类必须继承Object类

缺点:效率较低 与回调函数相比,效率较低,因为需要遍历所有关联,定位信号函数,但人的肉眼其实观察不出来

赞(0)
未经允许不得转载:171主机测评 » QT开发第二章——信号和槽
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址