Qt/QML编程学习之心得:Linux下Thread线程创建(26)

GUI设计中经常为了不将界面卡死,会用到线程Thread,而作为GUI设计工具,Qt也提供了一个这样的类,即QThread。

Qt/QML编程学习之心得:Linux下Thread线程创建(26)_第1张图片

 Qt/QML编程学习之心得:Linux下Thread线程创建(26)_第2张图片

QThread对象管理程序中的一个控制线程。线程QThread开始在run()中执行。默认情况下,run()通过调用exec()启动事件循环,并在线程内运行Qt事件循环。
也可以通过使用QObject::moveToThread()将工作对象移动到线程来使用它们。

比如Worker槽函数中的代码将在一个单独的线程中执行。但是,也可以自由地将Worker的槽函数连接到任何线程中任何对象的任何信号。由于一种称为排队连接的机制,跨不同线程连接信号和槽函数是安全的。

class Worker : public QObject
  {
      Q_OBJECT

  public slots:
      void doWork(const QString ¶meter) {
          QString result;
          /* ... here is the expensive or blocking operation ... */
          emit resultReady(result);
      }

  signals:
      void resultReady(const QString &result);
  };

  class Controller : pub

你可能感兴趣的:(qt,qml)