QTimer超时信号不发出

时间:2019-08-01 15:20:44

标签: c++ qt

我正在使用QTimer,并且没有发出超时信号。

这是我的代码:

console.log("Hello World."); // Output : "Hello World."

console.log = function (param) {return;}

console.log("Hello World."); // Output : nothing.

起初,我在类构造函数中定义了计时器,但是它也不起作用。

1 个答案:

答案 0 :(得分:0)

您可以将其添加到循环中

QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

QApplication::processEvents(QEventLoop::AllEvents, 100);

我在qt中的“睡眠”功能:

void WebView::delay(int sec)
{
    QTime dieTime= QTime::currentTime().addSecs(sec);
    while (QTime::currentTime() < dieTime)
        QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

}

如果我正确理解你,那么你想要的不是这样的东西:

QByteArray res;

QTime dieTime= QTime::currentTime().addSecs(sec);
while (!res.contains("OK\r\n") && QTime::currentTime() < dieTime) {
    QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
    qDebug() << res.append(sPort->read(1));
}