qt里在connect中使用lambda表达式程序异常结束

img


在这个程序中我一加上btn相关的函数就报错

img


网上一般的观点是使用了局部对象,但我btn是这堆上创建的,很疑惑,求解

把 btn 定义在主界面的类里面,你现在是定义在构造函数里面的,属于局部变量,跟你申请的是堆空间没关系,槽函数与构造函数是不同的函数,自然在槽函数里面就不能调用其他函数的局部变量。

打印出btn地址,对比是不是同一个地址
不是就在lamba捕获器中将此变量传进去

我自己试了下,好像没啥问题

img