QObject::moveToThread(QThread * targetThread)

2024-09-01 19:52

本文主要是介绍QObject::moveToThread(QThread * targetThread),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 改变该对象及其孩子的所在的线程。如果该对象有父亲,则它不能被移动。

事件处理将在targetThread中继续。

移动一个对象到主线程,使用QApplication::instance()来得到当前application的指针,使用QApplication()::thread()来得到应用程序所在的线程。例如:

myObject->moveToThread(QApplication::instance()->thread());

 如果目标线程为0,该对象和它的孩子的事件处理都会停止。

该函数只能把一个对象从当前线程移到另一个线程,不能把一个对象从任意的线程移到当前线程

这篇关于QObject::moveToThread(QThread * targetThread)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1127895

相关文章

QObject 信号与槽原理

只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必须继承QObject。凡是QObject类(不管是直接子类还是间接子类),都应该在第一行代码写上Q_OBJECT。不管是不是使用信号槽,都应该添加这个宏。这个宏的展开将为我们的类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力。因此,如果你觉得你的类不需要使用信号槽,就不添加这个宏,就是错误

python的threading和Pyqt的QThread

python_线程 我们可以通过直接从 threading.Thread 继承创建一个新的子类,并实例化后调用 start() 方法启动新线程,即它调用了线程的 run() 方法: 常用方法run()用以表示线程活动的方法。start()启动线程活动。join([time])等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生

QThread 与QObject::moveToThread在UI中的应用

1. QThread的两种用法 第一种用法就是继承QThread,然后覆写 virtual void run(), 这种用法的缺点是不能利用信号槽机制。 第二种用法就是创建一个线程,创建一个对象,再将对象moveToThread, 这种可以充分利用信号槽机制,与UI框架完美融合。这与std::thread也是不一样的地方。 2. moveToThread用法讲解 示例地址:MultiThr

Qt多线程之moveToThread()函数

文章目录 一、moveToThread()执行后,当前代码线程没有改变。二、对象执行moveToThread()后,哪些成员加入了子线程1、创建对象时不指定父对象2、对属性对象使用moveToThread加入子线程作用域3、将属性对象的创建放到子线程中执行 三、C++内存模型 在使用“继承QObject+QThread”实现多线程时,出现了一个BUG,最后发现是对moveToThr

PyCharm QThread 设置断点不起作用

背景: 端午节回来上班第一天,不想干活,领导又再后面看着,突然想起一个有意思的问题,为啥我的程序在子进程QThread的子类里打的断点不好用呢?那就解决一下这个问题吧。 原因: 如果您的解释器上安装了多个与PyQt兼容的后端,默认情况下,会启用自动搜索选项,这意味着将使用最先找到的后端。 启动debug是会看到: /Applications/PyCharm CE.app/Contents/

Qt-多线程-QThread分析总结

QThread是Qt提供的线程类,每一个QThread均可管理一个线程。 其具有两种使用方式:1、继承为QThread的子类;2、继承为QObject的子类,并使用QObject::moveToThread将此对象移到线程中运行 QThread提供了如下基本函数: 线程启动:start()运行一次 线程终止:terminate 终止线程,强制终止线程但会依据操作系统的调度策略,可能不是立即

Qt -线程基础(QThread、QtConcurrent、信号槽等)

昨晚看Qt的Manual,突然发现下一个版本的Qt中(Qt4.7.4、Qt4.8等)增加了一个特赞的介绍多线程的文章 : Thread Basics 注意: 该链接以后会失效,但是 到时候你直接看Qt自带Manual就行了本文不是严格的翻译 dbzhang800 2011.06.18 使用线程 基本上有种使用线程的场合: 通过利用处理器的多个核使处理速度更快。为保持GUI线程或其他

QT QObject::connect函数的学习

转载自http://blog.csdn.net/ybjx111/article/details/8272405 从Qobject(QObject.h)源码中可以看到QObject::connect的定义是这样的: [cpp]  view plain copy static bool connect(const QObject *sender, const char *signa

QT中的线程使用Qthread

Qt提供了一个与平台无关的QThread类,用以对线程的支持。多线程编程也可以有效解决在不冻结一个应用程序的用户界面情况下执行一个耗时的操作问题。 常用函数 启动 start() 执行 run() 和exec() 退出停止 quit() exit() terminate() requestInterruption() 线程等待 msleep() sleep() usleep()

Qt 之 QThread

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 QThread类提供了与系统无关的线程。 QThread代表在程序中一个单独的线程控制。线程在run()中开始执行,默认情况下,run()通过调用exec()启动事件循环并在线程里运行一个Qt的事件循环。 详细描述 当线程started()和finished()时,QThread会通过一个信号通知你,可以使