使用lambda函数时Qt连接崩溃

时间:2013-02-05 23:27:09

标签: qt lambda

代码在这里

void A::fun()
{
    QAction* act = new QAction(this);
    QAction* act2 = new QAction(this);
    connect(act, QAction::triggered, [this, &act2]() {...; act2.setDisable(true);}
                              // crash when &act2 is used to capture the variable
                              // but it is okay using act2 to capture the variable
}

是什么原因?感谢。

1 个答案:

答案 0 :(得分:3)

您正在使用act2引用,即使它是一个超出范围的指针,这就是复制指针的原因。