我发现了一件非常奇怪的事情。我有一个很大的 MainWindow 类,它使用 GUI 进行大量计算。为了保持 GUI 响应,我为 QTimer 创建了一个线程,该线程每n毫秒更新一次 GUI,另一个线程用于计算,现在一切都非常顺利和快速。
我注意到一个简单的问题是,当调用这个
connect (_worker, &RRTWorker::finished, [=]()
{
ui->stopButton->setEnabled(false);
});
,也就是说,当worker
发出信号finished
时(当它已经结束计算时),两者都[=]
被禁用,但[&]
里面的标签仍然是黑色的(不是那个灰色过滤器作为正常的禁用按钮)。如果您需要一些反馈,这里有一张图片:
stopButton
如您所见,“开始”按钮完全变灰,这是在on_startButtonclicked()
via 语句
中完成的ui->startButton->setEnabled(false)
。那么,这是一个错误,还是我做错了什么?