您的位置:首页 > 编程语言 > Qt开发

qt5视频学习笔记3(带参数的信号、Lamda表达式)

2018-01-26 14:32 344 查看
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.信号属于谁,它就谁发出    按钮只是触发软件中断,调函数


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: