[翻译] PySide6.QtCore.Qt.ConnectionType
翻译 (自用,不保证对)
PySide6.QtCore.Qt.ConnectionType
这个 enum 描述了 signals 和 slots 连接(connection) 的类型. 在一些特殊情况, 它决定了信号传递到插槽时的方式,比如 即时的(immediately)或 队列的(queued for delivery at a later time).
| Constant | Description |
|---|---|
| Qt.AutoConnection | 默认方式,槽在信息号发送者的线程执行动作。(Default) If the receiver lives in the thread that emits the signal, is used. Otherwise, is used. The connection type is determined when the signal is emitted. |
| Qt.DirectConnection | 槽立即在发送信号的线程,执行动作. |
| Qt.QueuedConnection | 槽等到接收者的线程激活时,在接收者的线程内执行动作. |
| Qt.BlockingQueuedConnection | 与上一个相同,不同在于,发送者的线程会阻塞(blocks),等待槽执行动作返回(returns). 注意:发送者和接收者不能在同一个线程,否则,线程会锁死(deadlock). |
| Qt.UniqueConnection | 这个类型和以上的类型组合使用,用 OR 连接. 当这个类型被使用时, 如果这个信息与指定的槽已经建立了连接,connect() 不会有作用 (,比如, 同一个信号,重复连接同一个槽). 在Qt 4.6被引入. |
| Qt.SingleShotConnection | 这个类型和以上的类型组合使用,用 OR 连接. 当这个类型被使用时,这个槽是一次性的,当信号发送到这个槽,槽会停止接收后续信息(broken). 在Qt 6.0被引入 |
当使用队列(queued)方式时,相关参数必须是QT可以接受的类型(types that are known to Qt’s meta-object system), 因为 Qt 要传递参数到后台的事件进程。如果你用队列方式时遇到以下错误:
QObject::connect: Cannot queue arguments of type 'MyType'
在connect()之前,先使用 qRegisterMetaType() 注册相关的数据类型.
在多线程用 信号和槽时, 查找 Signals and Slots Across Threads 的相关资料. (Queued Custom Type Example, QThread)
See also:
connect() qRegisterMetaType() Q_DECLARE_METATYPE()
原文
PySide6.QtCore.Qt.ConnectionType
This enum describes the types of connection that can be used between signals and slots. In particular, it determines whether a particular signal is delivered to a slot immediately or queued for delivery at a later time.
| Constant | Description |
|---|---|
| Qt.AutoConnection | (Default) If the receiver lives in the thread that emits the signal, is used. Otherwise, is used. The connection type is determined when the signal is emitted. |
| Qt.DirectConnection | The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread. |
| Qt.QueuedConnection | The slot is invoked when control returns to the event loop of the receiver’s thread. The slot is executed in the receiver’s thread. |
| Qt.BlockingQueuedConnection | Same as , except that the signalling thread blocks until the slot returns. This connection must not be used if the receiver lives in the signalling thread, or else the application will deadlock. |
| Qt.UniqueConnection | This is a flag that can be combined with any one of the above connection types, using a bitwise OR. When is set, connect() will fail if the connection already exists (i.e. if the same signal is already connected to the same slot for the same pair of objects). This flag was introduced in Qt 4.6. |
| Qt.SingleShotConnection | This is a flag that can be combined with any one of the above connection types, using a bitwise OR. When is set, the slot is going to be called only once; the connection will be automatically broken when the signal is emitted. This flag was introduced in Qt 6.0. |
With queued connections, the parameters must be of types that are known to Qt’s meta-object system, because Qt needs to copy the arguments to store them in an event behind the scenes. If you try to use a queued connection and get the error message:
QObject::connect: Cannot queue arguments of type 'MyType'
Call qRegisterMetaType() to register the data type before you establish the connection.
When using signals and slots with multiple threads, see Signals and Slots Across Threads.
See also:
connect() qRegisterMetaType() Q_DECLARE_METATYPE()
[翻译] PySide6.QtCore.Qt.ConnectionType的更多相关文章
- 【翻译】利用Qt设计师窗体在运行时创建用户界面(Creating a user interface from a Qt Designer form at run-time)
利用Qt设计师窗体在运行时创建用户界面 我们利用Calculator窗体例子中创建的窗体(Form)来展示当一个应用(application)已经生成后,是可以在其运行时产生与例子中相同的用户界面. ...
- Qt::ConnectionType(信号与槽的传递方式)
Qt::AutoConnection 自动连接:(默认值)如果信号在接收者所依附的线程内发射,则等同于直接连接.如果发射信号的线程和接受者所依附的线程不同,则等同于队列连接. Qt::DirectCo ...
- Qt class
Help on class Qt in module PyQt5.QtCore: class Qt(sip.simplewrapper) | Method resolution order: | ...
- PySide6之初级使用
背景介绍pyside6提供了Qt6的Python侧API. 在GUI程序撰写方面, 笔者不太喜欢频繁的编译过程, 倾向于随时更改代码即时查看效果. 因此, 推荐在简单应用的情况下使用pyside6, ...
- 转:QT 的点点滴滴 错误总结
转自:http://blog.csdn.net/lbsljn/archive/2009/12/29/5099590.aspx MinGw + CodeBlock + QT4.5 类定义后面要加&quo ...
- Qt源码分析之信号和槽机制
Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个 ...
- 6、Qt Meta Object system 学习
原文地址:http://blog.csdn.net/ilvu999/article/details/8049908 使用 meta object system 继承自 QOject 类定义中添加 Q_ ...
- Qt Meta Object system 学习
原文地址:http://blog.csdn.net/ilvu999/article/details/8049908 使用 meta object system 继承自 QOject 类定义中添加 Q_ ...
- Qt对象模型之一:信号和槽
一.信号和槽机制概述 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal).这种发出是没有目 ...
- Qt源码分析之信号和槽机制(QMetaObject是一个内部struct)
Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个 ...
随机推荐
- 如何在Docker容器中使用systemctl启动服务
解决方案:使用--privileged参数初始化容器 docker run -d -p 80:80 -it --privileged centos:centos8 /usr/sbin/init doc ...
- linux文件查找工具详解
linux文件查找详解 目录 linux文件查找详解 1.linux文件查找工具 1.1 find命令详解 1.1.1 根据文件名查找 1.1.2 根据属主属组查找 1.1.3 根据文件类型查找 1. ...
- jeecgboot集成Mongodb
1.引入jar包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...
- 10分钟了解Flink SQL使用
Flink 是一个流处理和批处理统一的大数据框架,专门为高吞吐量和低延迟而设计.开发者可以使用SQL进行流批统一处理,大大简化了数据处理的复杂性.本文将介绍Flink SQL的基本原理.使用方法.流批 ...
- 网络性能评估工具Iperf详解
一.网络性能评估工具Iperf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理.网络存在安全漏洞等原因,都会导致网络带宽利用率不高.要找到网络 ...
- apisix~集成服务发现注册中心
摘要 当业务量发生变化时,需要对上游服务进行扩缩容,或者因服务器硬件故障需要更换服务器.如果网关是通过配置来维护上游服务信息,在微服务架构模式下,其带来的维护成本可想而知.再者因不能及时更新这些信息, ...
- 使用 TortoiseGit 时,报 Access denied 错误
当输入正确的密码时,总是报如下错误: 解决方法: 然后弹出如下对话框: 然后编辑本地配置文件: 然后将红色框的SSH配置改为绿色框的 HTTP配置,点击保存,确定. 然后再进行拉取源码,先输入用户名, ...
- Redis 的简单介绍
Redis 特点 单线程 执行过程按顺序执行,不会同时执行多个操作,保证操作的原子性,省去了很多上下文切换线程的时间,不必考虑资源竞争和可能出现死锁. 为什么使用单线程 ? 官方FAQ表示:因为 Re ...
- AIAGC导航(aiagc.com): 最全的AI工具导航网站
AIAGC导航是一个专注于AI人工智能工具网站推荐的导航网站,可以帮助大家发现最新.最好用.最有趣的AI绘画.AI智能写作助手.AI聊天机器人.AI配音.AI音乐.AI换脸等各种AI工具应用软件,让A ...
- docker安装Kafka(windows版)
windows环境安装docker参考安装docker桌面版(Windows) 这一步如果出现报错的话可以直接输入wsl -l -v命令来查看当前Ubuntu的wsl版本 安装Kafka需要先安装 z ...