Qt信号槽连接函数connect()的简单使用方法

1、connect使用指针

connect(b2,&QPushButton::released,this,&MainWidget::mySlot);  //【抬起】按钮b2时,修改按钮b2的标题

2、使用lambda表达式

    connect(b4,&QPushButton::released,
           [b4]() // mutable    // 在此处添加mutable关键字,代表传进来的变量可以被修改,不写该关键字则不能被修改
           {
                if(b4->text()=="Lambda表达式") b4->setText("表达式Lambda"); //修改按钮标题
                else b4->setText("Lambda表达式");                          //修改按钮标题

                qDebug()<<"111111111";          //输出"111111111"
                // qDebug()<
    // []代表把外部变量传进来,如果不传是不能被使用的
    // [b4]代表把变量b4传进来
    // [=]代表把外部所有局部变量、类中所有成员以值的传递方式
    // [this]代表把类中所有成员以值的传递方式
    // [&]代表把外部所有局部变量引用尽量, 引用符号
    // int a=10,b=100;
    // ()第二个参数 函数的参数列表


3、使用宏

connect(sender,SIGNAL(signal()),receiver,SLOT(slot()));  
由于使用宏并不会做错误检查,所以不建议使用

connect()第五个参数的作用:

    连接方式:默认,队列,直接
    //只有在多线程时,才有意义
    //默认的时候:
    //如果是多线程,默认使用队列
    //如果是单线程,默认使用直接方式
    //队列方式:槽函数所在的线程和接收者一样
    //直接方式:槽函数所在线程和发送者一样


对于控件,可以右击控件选择【转到槽】的方式添加槽函数代码。


你可能感兴趣的:(C++语法,C++源码)