信号与槽的连接

news/2024/5/19 0:34:22 标签: signal

信号与槽的连接

Constant

Value

Description

Qt::DirectConnection

1

When emitted, the signal is immediately delivered to the slot.

Qt::QueuedConnection

2

When emitted, the signal is queued until the event loop is able to deliver it to the slot.

Qt::BlockingQueuedConnection

4

Same as QueuedConnection, except that the current thread blocks until the slot has been delivered. This connection type should only be used for receivers in a different thread. Note that misuse of this type can lead to dead locks in your application.

Qt::AutoConnection

0

If the signal is emitted from the thread in which the receiving object lives, the slot is invoked directly, as with Qt::DirectConnection; otherwise the signal is queued, as with Qt::QueuedConnection.

Qt支持三种类型的信号-槽连接:
1,直接连接,当signal发射时,slot立即调用。此slot在发射signal的那个线程中被执行(不一定是接收对象生存的那个线程)
2,队列连接,当控制权回到对象属于的那个线程的事件循环时,slot被调用。此slot在接收对象生存的那个线程中被执行
3,自动连接(缺省),假如信号发射与接收者在同一个线程中,其行为如直接连接,否则,其行为如队列连接。
连接类型可能通过以向connect()传递参数来指定。注意的是,当发送者与接收者生存在不同的线程中,而事件循环正运行于接收者的线程中,使用直接连接是不安全的。同样的道理,调用生存在不同的线程中的对象的函数也是不是安全的。QObject::connect()本身是线程安全的。


http://www.niftyadmin.cn/n/1617945.html

相关文章

设计模式概括

Abstract Factory:提供一个创建一系列相关或相互依赖 对象的接口,而无需指定他们具体的类 Adapter:将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作Bridge:将抽象…

软件架构的艺术

1,架构与架构师 1.1 架构 架构这个词来源于建筑学。建筑学中把架构定义为:人们对一个结果内的元素及元素之间的关系的一种主观映射和各种技术的实现。同时,建筑学中也认为,架构最主要的是指系统架构,而系统架构的主要任…

Qt 多线程

Qt 包含下面一些线程相关的类: QThread 提供了开始一个新线程的方法 QThreadStorage 提供逐线程数据存储 QMutex 提供相互排斥的锁,或互斥量 QMutexLocker 是一个便利类,它可以自动对QMutex加锁与解锁 QReadWriterLock 提供了一个可以同时读…

产品与项目

产品的完成要通过项目,有的时候是单个,大多时候需要许多个项目。而项目一般都是为了完成某个产品,或者产品的某个部分、某个阶段。因此,产品和项目是两个密不可分的概念。 产品与项目的最主要的对比: (1)生…

Qt 元对象机制

Qt之所以能有很大的动态性,都源自于它的元对象系统。下面是对这个机制的一个简要介绍。(来自于C GUI Programing with Qt4) Qt的一个最主要的特点可能就是它扩展了C的机制,可以创建独立的软件组件,这些组件可以被绑定在…

Qt 插件系统

Qt有两种与插件有关的API。一种用来扩展Qt本身的功能,如自定义数据库驱动、图像格式、文本编解码等,称为Higher-Level AP,既高级接口。另一种用于应用程序的功能扩展,称为Lower-Level API,低级接口。前一种是建立在后一…

Java多线程模式

介绍以下多线程模式,这里主要是列举Java有哪些线程模式以及其主要的使用方式。详情可阅读《Java多线程模式》一书。 1、Single Thread Execution——能通过这座桥的,只有一个人 该模式用锁来保护关键的执行区域。 2,Immutable ——不可破坏的…

增加黑莓程序自定义菜单项

BlackBerry支持给它自带的一些应用程序添加自定义的菜单,并通过激活这些菜单来完成开发者自定义的事件,从而有效的扩展这些应用程序的功能。例如,在打开浏览收到短信息(SMS)的时候,在菜单中增加一项“Open …