优点:
* 与普通函数的区别就是可以与信号关联*
涉及带有参数的函数时,只写参数的类型,不能写变量名,多个变量时要一一对应,例如
connect(dlg,SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
关联时connect(),函数名字写错,Qt Creator不报错!
这是因为Qt5之前的版本在指定信号和槽时必须使用SIGNAL()和SLOT()宏,最好用新的写法
connect(dlg,&myDialog::dlgReturn,this,&Widget::showValue);
这种写法支持拼写检查!
形式:on_objectName _信号名
自动关联要在connectSlotsByName()函数之前进行部件的定义,这种方式不明了,不常用。
disconnect()函数
用法:
disconnect(myObject,0,0,0);
myObject->disconnect();
disconnect(myObject,SIGNAL(mySignal()),0,0);
myObject->disconnect(SIGNAL(mySignal()));
disconnect(myObject,0,myReceiver,0);
myObject->disconnect(myReceiver);
disconnect(myObject,SIGNAL(mySignal()),myReceiver,SLOT(mySlot()));
myObject->disconnect(SIGNAL(mySignal()),myReceiver,SLOT(mySlot()));
myObject->disconnect(关联时connect()函数的返回值);
QSignalMapper信号映射器,可以实现对多个相同部件的相同信号进行映射,为其添加字符串或者数值参数,然后发射出去。
百分号后面是数字一!!
setText(tr("number is:%1").arg(value))