Qt面试题(一)Qt信号槽第五个参数
connect()第五个参数的作用,指定连接方式:默认,队列,直接
多线程时才有意义
默认的时候
如果是多线程,默认使用队列
如果是单线程, 默认使用直接方式
队列: 槽函数所在的线程和接收者一样
直接:槽函数所在线程和发送者一样
connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。
Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnection类型。
Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数运行于信号发送者所在线程。效果看上去就像是直接在信号发送位置调用了槽函数。这个在多线程环境下比较危险,可能会造成奔溃。
Qt::QueuedConnection:槽函数在控制回到接收者所在线程的事件循环时被调用,槽函数运行于信号接收者所在线程。发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。多线程环境下一般用这个。
Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。接收者和发送者绝对不能在一个线程,否则程序会死锁。在多线程间需要同步的场合可能需要这个。
Qt::UniqueConnection:这个flag可以通过按位或(|)与以上四个结合在一起使用。当这个flag设置时,当某个信号和槽已经连接时,再进行重复的连接就会失败。也就是避免了重复连接。
Qt面试题(一)Qt信号槽第五个参数相关推荐
- QT信号槽第五个参数
connect用于连接qt的信号和槽,在qt编程过程中不可或缺.它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置. Qt::AutoConnection: 默认值,使用 ...
- Qt计算器开发(二):信号槽实现数学表达式合法性检查
表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方, ...
- 1.QT元对象系统、信号槽概述、宏Q_OBJECT
一.元对象系统(Meta-Object System) Qt添加C++原本不具备的元对象系统,元对象系统提供了信号槽机制,运行时类型信息和动态属性系统. 元对象系统基于三点: 1.元对象系统为以QOb ...
- 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.6 自定义信号槽
本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1gA4y1d7gz 上节课,我们讲解了标准信号槽,标准信号槽中,信号和槽函数,都是 Qt 框架定 ...
- 【QT开发笔记-基础篇】| 第一章 QT入门 | 1.5 标准信号槽
本节对应的视频讲解:B_站_链_接 https://www.bilibili.com/video/BV1vW4y1676Q 本节讲解信号和槽的概念,以及标准的信号槽 1. 什么是信号槽 1.1 信号 ...
- Qt积少成多,QComboBox自定义信号槽
阶段总结,QComboBox的信号槽连接: 1.默认名称 void on_cmbItemList_currentIndexChanged(const QString &text); 2.指定槽 ...
- qt 信号多个链接槽_Qt原理窥探信号槽的实现细节
简介 本文是<Qt进阶之路>系列文章的特别篇,涛哥在这里讨论Qt信号-槽的实现细节. 上次的文章<Qt实用技能4-认清信号槽的本质>中介绍过,信号-槽是一种对象之间的 通信机制 ...
- 【QT|趣谈】最详细的信号槽机制介绍!
用最有趣的方式解释信号槽通讯机制 1 导语:信号槽的前世今生 2 QT的信号槽 2.1什么是信号槽? 2.2 用严谨的语言解释信号槽 3 信号槽实战 3.1 信号槽实例 4 信号槽plus 4.1 L ...
- qt中实现息屏开平mousepress_Qt实用技能5-掌握信号槽使用细节
目录 (放个目录方便预览.这个目录是从博客复制过来的,点击会跳转到博客) 简介 信号与槽的声明 信号-槽的使用 信号的使用 槽函数的使用 信号-槽的"元调用" 信号和信号的参数 注 ...
最新文章
- 软银宣布启动5G Project:全球首家商用Massive MIMO技术
- s插件——SlimScroll滚动美化插件
- POI实现Excel导出时常用方法说明
- WeWork通过向225,000个社区征税来拼命地从Meetup.com榨取现金
- centos7安装DHCP服务器
- 坦克游戏服务器未响应,《坦克世界》退出战斗 退出战斗卡死解决办法
- 刚构桥的优缺点_[中交公规院]预应力连续刚构桥总体设计及主要尺寸
- c语言std变量,10-C ++中的变量
- [Python] L1-001. Hello World-PAT团体程序设计天梯赛GPLT
- 用MDT 2012为企业部署windows 7(四)--创建Deploymentshare共享以及介绍一些选项的具体作用...
- 软Raid5,LVM,3T大硬盘纠缠操作的问题
- Jsoup爬虫新手一
- 怎么用服务器跑matlab程序,服务器上跑matlab程序
- x64 - reject driver loading
- php调java_php调java接口
- java webservice原理_轻松搞懂WebService工作原理
- EasyUI 表格制作
- Unity4.x UWP版本打包流程
- 蓝桥杯真题python B试题 C: 纸张尺寸
- Linda Rising:“你相信谁?”
热门文章
- 威学一百_涨价通知丨威学一百VIP全年畅学卡价格即将上调!
- VCS命令行选项总结简单脚本实例
- VMware OVF 协议
- 我的RTOS 之二 --Threadx在skyeye上仿真測试(基于2410)
- 2.JAVA基础——数据类型、变量及运算符
- 电脑linux下载官网下载,Bluestar Linux
- lsb算法 java,解决:-bash: lsb_release: command not found办法
- 前端 JavaScript 之『防抖』的简单代码实现
- ORM框架之Spring Data JPA(二)spring data jpa方式的基础增删改查
- SOAP(Simple Object Access Protocol )简单对象访问协议