其他分享
首页 > 其他分享> > QT的QQmlIncubationController类的使用

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