qt信号槽的几种连接方式

简介: qt信号槽

Qt::AutoConnection - 自动关联

如果信号和槽函数在同一个线程中,则使用Qt::DirectConnection方式,如果信号和槽函数没有在同一个线程中,则使用Qt::QueuedConnection在信号发送的时候,决定采用哪种关联类型


Qt::DirectConnection - 直接关联

信号和槽函数在同一个线程中,发射完信号后立即调用槽函数,只用在槽函数执行完成返回后,发射信号后面的代码才可以执行,相当于阻塞模式


Qt::QueuedConnection - 队列关联

信号和槽函数不再同一个线程中,当发送信号的线程发送信号后立即执行下面的代码,发送的信号会放到另一个线程的信号队列中等待获取执行,相当于不阻塞模式


Qt::BlockingQueuedConnection - 阻塞队列关联

信号和槽不再同一个线程中,发送信号的线程发送一个信号后,这个线程不会执行下面的代码,直到接收信号的线程中的槽函数执行完成返回后才会继续执行,如果采用这种连接方式的信号和槽函数在同一个线程中,则会形成死锁。

Qt::UniqueConnection - 唯一关联

主要使信号发送者和接受者有唯一的连接。防止多次调用connect形成重复关联。一旦形成重复关联,信号一个旦发射,就会有对应的槽函数多次执行


相关文章
|
6月前
Qt第二课 核心机制信号槽
Qt第二课 核心机制信号槽
68 1
|
6月前
|
存储 API C++
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
533 0
|
4月前
|
关系型数据库 MySQL Linux
Qt连接Mysql出现问题(一):“Driver not loaded Driver not loaded“
第一眼看见这张图我也觉得很奇怪,显示有QMYSQL但是又说没有,这不自相矛盾吗!
758 4
|
6月前
【qt】核心机制信号槽(下)
【qt】核心机制信号槽(下)
38 1
|
6月前
|
消息中间件 存储 安全
深入理解 Qt 信号槽:高效沟通的桥梁
深入理解 Qt 信号槽:高效沟通的桥梁
762 1
|
3月前
QT信号槽
QT信号槽
35 0
|
3月前
【qt】客户端连接到服务器
【qt】客户端连接到服务器
61 0
|
5月前
|
SQL 关系型数据库 MySQL
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
140 0
|
5月前
|
编译器
(16):深入 Qt5 信号槽新语法
(16):深入 Qt5 信号槽新语法
|
5月前
Qt 信号槽(笔记)
Qt 信号槽(笔记)