1.信号可以重载
void(subWidget::*testSignal)(int,QString)=&subWidget::mySignal;
connect(&w,testSignal,this,&MainWidget::dealSlot);
2.类的成员函数有个特殊指针,this
谁(哪个对象)调用这个成员函数,this就指向这个对象
this可以操作类型任意成员
3.函数指针
void fun(int)
{
}
void (*p)(int)=fun;
4.Lambda表达式 匿名函数对象
C++11增加的新特性,项目文件:CONFIG +=C++11;
Qt配合信号一起使用,非常方便
列如:1.QPushButton*b4=newQPushButton(this);
b4->setText("Lambda表达式");
b4->move(150,150);
connect(b4,&QPushButton::released,
[]() /*[]表示传进来的参数 [=]把外部所有局部变量、类中所有成员以值传递方式 ():函数参数
{
qDebug()<<"11111";
}
);
2. QPushButton *b4=new QPushButton(this);b4->setText("Lambda表达式");b4->move(150,150);int a=10,b=100;connect(b4,&QPushButton::released,[=]() mutable //mutable:变量可修改
//[this]:类中所有成员以值传递方式 不包括类中成员 [&]:把外部所有//局部变量,引用符号{
b4->setText("123");a=11;qDebug()<<"11111";}
);
5.信号属于谁,它就谁发出 按钮只是触发软件中断,调函数