第四讲 深入介绍信号与槽

本文概要:讲解Qt的信号与槽机制,涉及信号与槽的连接方法,连接条件等。

可以使用信号与槽机制的类

信号与槽机制是在QObject类中实现的,这种机制能够用与任何QObject子类中,但是应该在类中加入Q_OBJECT宏。

槽的介绍:

槽与普通的c++成员函数几乎一样;槽能够被声明为虚函数,能被重载,能够被其他函数调用等,与c++普通

的成员函数不同之处仅仅在于槽可以与信号连接在一起,每当发射与槽可以接受的信号时,槽会被自动调用。

槽与信号的连接方法:

connect(sender, SIGNAL(signal), receiver, SLOT(slot));

sender和receiver都应该为指向QObject的指针,signal与slot为不带参数的函数名;SIGNAL与SLOT宏会将它们的参数转换为相应的字符串。

槽与信号连接的可能情况:

一个信号连接多个槽

connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int))); connect(slider, SIGNAL(valueChanged(int)), this, SLOT(updataStatusBarIndicator(int)));

当发射信号时,会以不确定的顺序调用这些槽;

多个信号连接一个槽

connect(lcd, SIGNAL(overflow()), this, SLOT(handleMathError())); connect(calculator, SIGNAL(divisionByZeor()), this, SLOT(handleMathError()));

无论发射那个信号都会调用连接的槽;

信号可以与另外一个信号连接:

connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(updataRecord(const QString &)));

当发射第一个信号时,第二个信号也会被发送,除此之外,信号的相互连接与信号与槽的连接难以区分。

信号与槽(或者信号)的连接可以被移除

disconnect(lcd, SIGNAL(overflow( )), this, SLOT(handleMathError( )));

一般情况下较少用到。另外,当删除对象时,Qt会自动与这个对象相关的所有连接;

信号与槽(或者信号)成功连接的条件

信号与槽的顺序必须有相同的顺序与相同的类型,如果信号的参数比它所连接的槽的参数多,多余的参数会被忽略。另外,在信号与槽使用connect()连接时,

信号与槽的名字中不能包含参数名。

时间: 2024-10-13 17:18:54

第四讲 深入介绍信号与槽的相关文章

深入介绍信号和槽

信号和槽机制是Qt编程的基础,它可以让应用程序编程人员把这些互不了解的对象绑定在一起.漕河普通的c++成员函数几乎是一样的—可以是虚函数,可以被重载,可以是公有的.保护的或者私有的.并且也可以被其他c++成员函数直接调用:还有,他们的参数可以任意类型.唯一不同的是:草还有和信号连接在一起,在这种情况下,每当发射这个信号时候,就会自动调用这个槽. connect()语句: connect(sender,SIGNAL(signal),receiver,SLOT(slot)); 一个信号可以连接多个槽

通达OA 小飞鱼开发培训第四讲 工作流介绍(图文)

本次课程主要解说了OA工作流相关内容,有些涉及到工作流的程序开发假设对工作流不熟悉也是有非常大难度,因此在这里进行了内容补充.   1.工作流介绍

机器学习中使用的神经网络第四讲笔记

Geoffery Hinton教授的Neuron Networks for Machine Learning的第四讲主要介绍如何使用back propagation算法来学习到词汇的特征表示. Learning to predict the next word 接下来的几小节主要介绍如何使用back propagation算法来学习到词汇的特征表示.我们从一个很简单的例子开始,介绍使用back propagation算法来将词汇间的相关信息转换成特征向量. 下图给出了一个家庭的树状图,我们要做的

QT的信号与槽机制介绍

信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上.QT支持下列平台:MS/WINDOWS-95.98.NT和2000:UNIX/X11-Linux.Sun Solaris.HP-UX.Digital Unix.IB

QT的信号和槽机制简介

信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上.QT支持下列平台:MS/WINDOWS-95.98.NT和2000:UNIX/X11-Linux.Sun Solaris.HP-UX.Digital Unix.IB

QT 的信号与槽

转载: QT 的信号与槽机制介绍 QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上.QT 支持下列平台:MS/WINDOWS-95.98.NT 和 2000:UNIX/X11-Linux.Sun Solaris.HP-UX.Digital Unix.IBM AIX.SGI IRIX:EMBEDDED- 支持 framebuffer

Qt on Android: Qt Quick 事件处理之信号与槽

前面两篇文章< Qt on Android:QML 语言基础>和<Qt on Android: Qt Quick 简单教程>中我们介绍了 QML 语言的基本语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经可以完成简单的 Qt Quick 应用了.接下来呢,哈,我们要介绍 Qt Quick 中一个灰常灰常重要的主题:事件处理.这将是比较长长长长的一篇,哦,不还有后续好几篇--废话少说,还是谈正事儿吧兄弟姐妹们. 本文参加 CSDN 博文大赛,请点这里投我一票,谢

2.QT-窗口组件(QWidget),QT坐标系统,初探消息处理(信号与槽)

本章主要内容如下: 1) 窗口组件(QWidget) 2) QT坐标系统 3) 消息处理(信号与槽) 介绍 Qt以组件对象的方式构建图形用户界面 Qt中没有父组件的顶级组件,则被叫做窗口 组件的类型分为: 容器类(父组件)  :  用于包含功能的界面组件 功能类(子组件)  :  用于实现特定的交互功能 如下图所示: 比如上面的QgroupBox ,即属于顶级组件的功能类(子组件),又是3个功能类组件的父组件(容器) 组件继承 Qt中所有窗口组件都继承于QWidget类,而QWidget类又继承

Qt学习--信号与槽(多窗口的实现)

按照helloword的创建过程 创建一个新的项目(项目名:window) 之后进行多窗口的实现过程: (参考:http://www.qter.org/portal.php?mod=view&aid=27&page=3) 第2篇 Qt5基础(二)编写Qt多窗口程序 三.添加登录对话框 1.往项目中添加新文件,这里可以在编辑模式左侧的项目目录上右击,然后选择添加新文件菜单,如下图所示.当然也可以在文件菜单中进行添加. <ignore_js_op> 2.模板选择Qt分类中的Qt设计