[翻译] 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中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个 ...
随机推荐
- sql 查找是否存在的记录
场景:根据条件从数据库表中查询 『有』与『没有』,只有两种状态 方法1: SELECT count(*) FROM table WHERE a = 1 方法2: SELECT 1 FROM table ...
- 远程桌面使用Pr剪视频
要远程访问高性能计算机并使用 Pr(Adobe Premiere Pro)进行视频编辑,您可以考虑使用流畅且响应迅速的远程桌面软件.您可以考虑以下选项. Splashtop Business Acce ...
- C#语言:散修笔记
文章目录 前言 数组的几种定义方法 out 和 ref 的区别 可变参数params 静态方法与非静态方法 >❀什么时候使用静态和非静态 构造函数 >❀类中方法的重载 >❀在类中输出 ...
- JDK源码阅读-------自学笔记(八)(数组演示冒泡排序和二分查找)
冒泡排序 算法 比较相邻的元素.如果第一个比第二个大,就交换他们两个 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数 针对所有的元素重复以上的步骤,除 ...
- 用pageOffice控件实现 office 文档在线编辑Word插入另外word文档的功能
OA办公中,业务需要编辑word文档,需要插入另外word文档的功能. 怎么实现编辑word文档插入另外word文档呢? 2 实现方法 通过pageOffice实现简单的在线打开编辑word时, 通过 ...
- rbenv:Ruby 多版本管理利器
在 Ruby 开发的世界中,经常需要面对不同项目使用不同 Ruby 版本的情况.这时,一个高效.灵活且易于使用的 Ruby 版本管理工具就显得尤为重要. rbenv 正是这样一个工具,它允许开发者在同 ...
- dpkg和rpm对比及常用命令
dpkg(Debian Package)和rpm(RPM Package Manager)是两种不同的Linux包管理工具,它们各自在特定的Linux发行版中占据核心地位.两者之间对比如下: 所属发行 ...
- mysql通过binlog来恢复被删除的数据库
binlog日志 查询: MariaDB [(none)]> show variables like 'log_bin'; +---------------+-------+ | Variabl ...
- 查看CentOS版本的方法
1.以下命令对于Linux发行版是通用的: root@MyMail ~ # uname Linux root@MyMail ~ # uname -r 2.6.18-164.el5 [root@loca ...
- SMOGN算法Python实现:解决回归分析中的数据不平衡
本文介绍基于Python语言中的smogn包,读取.csv格式的Excel表格文件,实现SMOGN算法,对机器学习.深度学习回归中,训练数据集不平衡的情况加以解决的具体方法. 在不平衡回归问题 ...