我正在 PyQt 中创建 RSS 应用程序,并试图找到一种编程更新的好方法。我发现这个在 Python 中执行周期性操作,但也许有 Qt 特定的方式来做这些事情。
我知道每个提要的更新周期,所以我想在特定时间运行更新(hh:mm)。
进行 10 分钟循环,将检查当前时间并运行更新,如果它比下一个预测的提要更新更严重似乎错过了知道运行它的具体时间的点。
我正在 PyQt 中创建 RSS 应用程序,并试图找到一种编程更新的好方法。我发现这个在 Python 中执行周期性操作,但也许有 Qt 特定的方式来做这些事情。
我知道每个提要的更新周期,所以我想在特定时间运行更新(hh:mm)。
进行 10 分钟循环,将检查当前时间并运行更新,如果它比下一个预测的提要更新更严重似乎错过了知道运行它的具体时间的点。
您应该在 Qt 应用程序中使用QTimer 。通常你不需要关心具体的更新时间,因为目标是定期检查。所以最直接的方法是为每个提要创建一个计时器,并设置每个计时器的更新间隔(例如10分钟)。
如果您出于某种原因确实想在特定时间进行更新,您可以使用类似QDateTime::currentDateTime().msecsTo(targetTime)
计算计时器间隔的方法,用于QTimer::setSingleShot
使计时器非周期性,并在第一个计时器到期时设置另一个计时器。
这样做可能是合理的,timer->setTimerType(Qt::VeryCoarseTimer)
因为您不需要太多的准确性,并且 Qt 在某些情况下可以优化性能和功耗。
请注意,您通常不能使用 Python 的方法来设置计时器,因为 Qt 有自己的事件循环,并且不允许其他库在其中运行某些东西。