Qt ---------- connect连接类型

p,li { white-space: pre-wrap }


Qt::AutoConnection


0


(Default) If the receiver lives in the thread that emits the signal, Qt::DirectConnection is used. Otherwise, Qt::QueuedConnection is used. The connection type is determined when the signal is emitted.


Qt::DirectConnection


1


The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread.


Qt::QueuedConnection


2


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


3


Same as Qt::QueuedConnection, 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


0x80


This is a flag that can be combined with any one of the above connection types, using a bitwise OR. When Qt::UniqueConnection is set, QObject::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.

直接连接的大概意思是:信号一旦发射,槽立即执行,并且槽是在信号发射的线程中执行的。

队列连接的大概意思是:信号发射后,当事件循环返回到接收线程时槽函数就执行了,也就是说这种连接方式不是立即触发槽函数的,而是要排队等的,并且是在槽函数的线程中执行。

自动连接的大概意思是:信号发射对象如果和槽的执行对象在同一个线程,那么将是直连方式,否则就是队列方式。

阻塞队列方式:在槽函数返回之前信号发射所在的线程都是阻塞的。

Call qRegisterMetaType() to register the data type before you establish the connection。

另外信号槽的参数必须是注册的MetaType,所以当你使用自定义的类型或者 没有注册的类型,都要在connect连接语句前调用qRegisterMetaType()进行注册,因为Qt需要保存你的参数。

时间: 2024-11-13 09:36:00

Qt ---------- connect连接类型的相关文章

QT connect函数的第五个参数

enum ConnectionType {AutoConnection,DirectConnection,QueuedConnection,AutoCompatConnection,BlockingQueuedConnection,UniqueConnection = 0x80}; 在QT中我们通常会使用connect函数,它是连接信号与槽的一种函数,通常使用的时候都是使用四个参数,但它还有第五个参数,只是一般都是使用的是默认参数. Qt::AutoConnection: 默认值,使用这个值则连

CentOS 6配置VPN     PPTP连接类型的

今天在自己的CentOS6上要连接远端的VPN服务器,但是在安装了下面的两个包以后,在连接配置中选择VPN连接类型的时候没有PPTP的选项 $ sudo yum install pptp   $ sudo yum install NetworkManager-openswan 查了一下也没有弄明白为啥,后来在使用"sudo yum search pptp"命令查找包的时候发现了一个叫pptp-setup的包,抱着试试看的心安装了一下 $ sudo yum install pptp-se

openssl之BIO系列之17---连接(connect)类型BIO

连接(connect)类型BIO ---依据openssl doc\crypto\bio_s_connect.pod翻译和自己的理解写成 (作者:DragonKing, Mail: [email protected] ,公布于:http://gdwzh.126.com之o penssl专业论坛) 该类型的BIO封装了socket的Connect方法,它使得编程的时候能够使用统一的BIO规 则进行socket的connect连接的操作和数据的发送接受,而不用关心详细平台的Socket的 conne

Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库     本文地址:http://techieliang.com/2017/12/680/ 文章目录 1. 动态连接库创建与使用  1.1. 项目创建  1.2. 调用-使用.h文件 2. 静态库创建及使用  2.1. 创建  2.2. 使用 3. QLibrary动态加载动态库  3.1. 介绍  3.2. 范例  3.3.

Sort merge join、Nested loops、Hash join(三种连接类型)

目前为止,典型的连接类型有3种: Sort merge join(SMJ排序-合并连接): 首先生产driving table需要的数据,然后对这些数据按照连接操作关联列进行排序:然后生产probed table需要的数据,然后对这些数据按照与driving table对应的连接操作列进行排序:最后两边已经排序的行被放在一起执行合并操作.排序是一个费时.费资源的操作,特别对于大表.所以smj通常不是一个特别有效的连接方法,但是如果driving table和probed table都已经预先排序

(nginx|apache)+tomcat 几种常见的代理实现方式或连接类型(connector type)

简单描述一下nginx两块网卡,eth1外网,eth0内网与tomcat eth0通信,用户请求静态内容由nginx直接响应,动态内容则nginx转发至后端tomcat响应 安装nginx,tomcat不再描述. nginx的配置文件如下:/etc/nginx/nginx.conf [[email protected] ~]# pnginx worker_processes 1; events { worker_connections 1024; } http { include mime.ty

Unity如何判断网络连接类型

今天遇到了一个问题,如何判断手机游戏当前的网络连接类型,是wifi还是234G? 起初准备在Android中写好插件供Unity调用,后来在网上浏览众神的帖子时,在csdn上看到了使用NetworkReachability的使用方法,于是自己的安卓机完美解决,屌丝惜肾无爱疯,希望有人可以试试在ios上是否同样可用. 上代码: [code]csharpcode: using UnityEngine; using System.Collections; public class Test : Mon

Unity判断网络连接类型

使用NetworkReachability判断手机游戏当前的网络连接类型,是wifi还是234G 1 using UnityEngine; 2 using System.Collections; 3 4 public class Test : MonoBehaviour { 5 6 string str; 7 // Use this for initialization 8 void Start () { 9 if (Application.internetReachability == Net

Swift - 判端网络连接状态,连接类型(3G还是Wifi)

IJReachability是一个使用Swift写的第三方网络检测类.可以测试网络是否连接,并支持3G和Wifi的检测. 使用样例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import UIKit class ViewController: UIViewController {          @IBOutlet weak var statu