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

2024-01-07 22:49:27

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

 

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

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

class Worker : public QObject
  {
      Q_OBJECT

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

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

  class Controller : pub

文章来源:https://blog.csdn.net/weixin_49369227/article/details/135440557
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。