【发布时间】:2019-09-03 13:48:36
【问题描述】:
我在循环中调用一个函数:
for (Item *item : *items) {
item->func();
}
被调用函数发出信号并等待100毫秒:
void Item::func()
{
// Emit a signal
emit castSignal();
QTimer::singleShot(100 /* msec */, [](){
qDebug() << "Wait for 100 milliseconds";
});
}
我有一个插槽,当接收到信号时会记录到控制台:
QObject::connect(this, &Item::castSignal, this, &Item::handleSignal);
void Item::handleSignal()
{
qDebug() << "Signal received";
}
我希望日志是这样的:
Signal received
Wait for 100 milliseconds
Signal received
Wait for 100 milliseconds
Signal received
Wait for 100 milliseconds
但实际的日志是这样的:
Signal received
Signal received
Signal received
Wait for 100 milliseconds
Wait for 100 milliseconds
Wait for 100 milliseconds
我不知道为什么!谁能帮忙。
【问题讨论】: