[翻译] 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中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个 ...
随机推荐
- 05. gem使用手册
https://www.jianshu.com/p/ced2793bfde4?utm_campaign=maleskine&utm_content=note&utm_medium=se ...
- 配置vscode的vue环境变量
参考下面连接: vscode中使用beautify插件格式化vue文件(自定义快捷键) https://blog.csdn.net/jiandan1127/article/details/859589 ...
- Critical Expression
什么是Critical Expression 所谓Critical Expression就是一个表达式依赖的值,必须出现在这个表达式前面.比如: times (label-$) db 0 ;times ...
- 解决小程序uni-app echars层级过高问题
使用 force-use-old-canvas="false" 使用微信小程序的cover-view会有很多问题,并且不一定生效,只需要在canvas的标签内添加 force-us ...
- lvs之DR模式的实操演练
理论 我是内部服务,代替我访问外部网络,这是正向代理:代替外部网络访问我,这是反向代理 槽位 sh根据源地址.调度到某个节点,dh,根据目标地址,调度到某个节点, 实战演练 默认策略以及修改策略 查看 ...
- Spring 对 Junit4,Junit5 的支持上的运用
1. Spring 对 Junit4,Junit5 的支持上的运用 @ 目录 1. Spring 对 Junit4,Junit5 的支持上的运用 每博一文案 2. Spring对Junit4 的支持 ...
- sqlServer 重复数据项处理,只选其中一条,保留一条
select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) --删除 from tab ...
- PHP 有哪些常用的魔术变量 ?
引言 PHP 向它运行的任何脚本提供了大量的预定义常量. 魔术变量 __LINE__ 文件中的当前行号. __FILE__ 文件的完整路径和文件名. 如果用在被包含文件中,则返回被包含的文件名. __ ...
- CSS——样式继承
CSS的样式表继承指的是,特定的CSS属性向下传递到子孙元素.总的来说,一个HTML文档就是一个家族,然后html元素有两个子元素,相当于它的儿子,分别是head和body,然后body和head各自 ...
- JavaSE 数据类型以及基本转化与包装
目录 数据类型. 1.基本类型(八个) 数值型 整型类型 byte型:1字节 8bit位 第一位是符号位 null short型:2字节 int 型:4字节 long型:8字节 浮点类型 float ...