QT的QQmlIncubationController类的使用
作者:互联网
详细说明
QQmlIncubationController实例驱动QQmlIncubators的进度。
为了异步行为并且不会在应用程序中造成卡顿或停滞,必须仅在应用程序的空闲时间内驱动创建QQmlIncubator的对象的过程。 QQmlIncubationController允许应用程序精确控制此处理的时间,频率和持续时间。
应该通过调用QQmlEngine :: setIncubationController()方法来创建并设置QQmlIncubationController派生实例。然后根据应用程序的要求,通过调用QQmlIncubationController :: incubateFor()或QQmlIncubationController :: incubateWhile()方法来控制处理。
例如,这是一个孵化控制器的示例,它将每16毫秒最多孵化5毫秒。
class PeriodicIncubationController : public QObject,
public QQmlIncubationController
{
public:
PeriodicIncubationController() {
startTimer(16);
}
protected:
void timerEvent(QTimerEvent *) override {
incubateFor(5);
}
};
尽管前面的示例可以工作,但这并不是最佳选择。现实世界中的孵化控制器应该在不影响应用程序的情况下,尝试使消耗的空闲时间最大化(而不是像5毫秒那样的静态时间)。
标签:QT,示例,QQmlIncubationController,孵化,应用程序,毫秒,使用,public 来源: https://blog.csdn.net/it_xiangqiang/article/details/111467754