一、Lambda表达式
1.1 [ ]标识符 匿名函数
1.1.1 =值传递
1.1.2 &引用传递
1.2 ( )参数
1.3 { }实现体
1.4 mutable 修饰值传递变量,可以修改拷贝出的数据,改变不了本体。
1.5 返回值 [] () ->int { }
作业一:设置两个按钮,按下按钮一打开窗口,按下按钮二关闭窗口。(升级版:只有一个按钮,open按下,按钮文字变为close,打开一个窗口,再次按下按钮,窗口消失。)
widget.cpp:
#include "widget.h"
#include "ui_widget.h"
#include <QWidget>
#include <QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QPushButton*btn1=new QPushButton("打开",this);
QPushButton*btn2=new QPushButton("关闭",this);
btn2->move(100,0);
QPushButton*btn3=new QPushButton("打开",this);
btn3->move(50,80);
QWidget*window=new QWidget;
//设置窗口标题
window->setWindowTitle("作业一");
//信号和槽
connect(btn1,&QPushButton::clicked,window,[=](){
window->show();
});
connect(btn2,&QPushButton::clicked,window,[=](){
window->close();
});
connect(btn3,&QPushButton::clicked,window,[=](){
if(btn3->text()=="打开")
{
window->show();
btn3->setText("关闭");
}
else
{
window->close();
btn3->setText("打开");
}
});
}
Widget::~Widget()
{
delete ui;
}