QT里面可以在非GUI线程里发个事件,让GUI线程执行完后再返回呢

如题所述

你可以这么做
YourThread::run()
{
emit your_signal();
}

connect(sender,signal,receiver,slot,Qt::BlockingQueuedConnection);

但是用的不好的话会死锁
温馨提示:内容为网友见解,仅供参考
无其他回答

Qt线程知识总结——QThread
大多数非GUI类,如QTimer、QTcpSocket、QUdpSocket、QProcess,都是可重入的,可以在多个线程中同时使用。然而,QObject的子对象必须在创建它的父对象的线程中创建,事件驱动对象只能在单一的线程中使用,并且必须确保删除QThread对象前删除在该线程中创建的所有对象。线程在耗时操作中使用,将操作移至工作...

几种Qt种延时处理方法
阻塞型延时的原理是让线程在指定延时期间暂停执行,使GUI在延时过程中失去响应,界面卡死。Qt提供了QThread类的sleep(n)、msleep(n)、usleep(n)函数进行延时,这些函数常用于非GUI线程。二、非阻塞延时 非阻塞延时通过利用事件循环实现。一种方法是在等待过程中不断强制进入当前线程的事件循环,处理堵塞的...

为什么说GUI是单线程化的
现代的gui框架使用了一个略微不同的模型:模型创建了一个专门的线程,事件派发线程(event dispatch thread,RDT)来处理gui事件。单线程化的GUI框架并不仅仅存在于java中:Qt、NextStep、Macos Cocoa、XWindows,等等都是单线程化的。也并不缺少反面的尝试;有很多试图写出多线程的GUI框架的努力,最终都...

qt如何解决线程空转的问题
当发送线程发送失败后,给监控线程发信号,监控线程再去处理。同理,接收线程一样的方式。qt编程是一个由QtCompany于1991年开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。qt是面向对象的框架,使用特殊的代码生成扩展称为元对象编译器M...

MiniGUI详细资料大全
MiniGUI 启动后,初始占用 1MB 动态存储空间。建议系统记忆体为 8MB 以上。 作业系统适配性 : 支持 Linux 作业系统(非 uClinux 作业系统),可以 MiniGUI-Processes、MiniGUI-Threads 或者 MiniGUI-Standalone 三种运行模式运行。 内建资源支持。可以将 MiniGUI 所使用的资源,诸如点阵图、图示和字型等编译到函式馆...

QT不同平台对线程如何支持和实现
线程是通过QThread::run() 重载函数开始执行的,这一点很象 Java 语言中的线程类。在 Qt 系统中,始终运行着一个GUI主事件线程,这个主线程从窗口系统中获取事件,并将它们分发到各个组件去处理。在 QThread类中还有一种从非主事件线程中将事件提交给一个对象的方法,也就是 QThread::postEvent()方法,该方法提供...

使用Qt gui编写了一个c++程序,运行一段时间就报异常退出,非常困惑
目测是里边你想销毁另外一个线程里的定时器造成的。请检查。另外锁Mutex在等待的时候,被定时器中断也是一个可能。

qwait是什么意思?
让主线程等待所有的子线程执行完毕再行下一步操作。总的来说,Qwait机制是程序开发中不可或缺的一个重要工具。无论是在GUI编程还是在后台程序开发中,都可以极大地提高程序的效率和性能。在编写多线程程序的时候,开发者需要充分了解Qwait机制的原理和使用方法,才能更好地发挥它的作用。

Qt开发岗位必备《Qt类图专业技术宝典》
3.1 Qt Core Qt Core是Q中提供许多基本的非GUI功能和工具的核心模块。它包含了一系列的类和函数,用于处理字符串、日期和时间、文件和目录操作、事件处理、多线程支持、定时器等。以下是Qt Core模块的一些主要特性和功能:3.2 Qt GUI Qt GUI是Qt中用于创建丰富的图形用户界面(GUI)应用程序的重要...

postevent能发送qt自身定义的事件吗
实现了事件向下传递的那一套。直接返回的话myArmy就收不到这个事件,因为执行完这个 mySender.notify的return true后,事件传递被人为的在半截终止了 (见Qt事件处理的五个层次http:\/\/blog.csdn.net\/michealtx\/article\/details\/6865891 ),下面的myArmy的安装的过滤器和它自己的event都不会收到这个事件...

相似回答