用的越多,越有想法。
本想着用lambda简化一下代码,结果出了问题,跟踪调试了一下,发现怀疑是Qt的。
代码如下。
void MainWindow::on_pushButton_clicked()
{
int max = 0;
connect(&m_dTimer, &QTimer::timeout, this, [=]()mutable{
qDebug() << "fffffff" << max;
max++;
if(max >= m_max)
{
m_dTimer.stop();
// m_dTimer.disconnect();
}
}, Qt::UniqueConnection);
m_dTimer.start(500);
}
很简单,可是也很怪异的是Qt::UniqueConnection这个参数竟然不起作用了。
点击多次按钮,就可以看出来问题。只加入一个disconnect来结束。