简说Qt信号和槽

目录

信号和槽是什么

Qt中的connect

使用信号和槽的前提

信号和槽关联的两种方式

自定义信号和自定义槽

​编辑

触发自定义信号

[disconnect 断开信号和槽的连接](#disconnect 断开信号和槽的连接)


信号和槽是什么

我们写的 GUI程序,就是为了让用户操作的,就是要和用户进行交互,这个过程中,就需要关注用户的具体操作是什么?

说到信号,信号源,信号类型,信号的处理方式,与Linux中的信号异曲同工之妙,

槽,本质上就是回调函数,比如C语言中的qsort函数,STL中的仿函数,lambda函数,信号处理函数,线程入口函数,epoll的基于回调的机制。

Qt中的connect

Qt中的connect和网络中的connect没有任何关系,Qt中的connect是用来实现信号和槽之前的多对多关系。

使用信号和槽的前提

如果某个类想要使用信号或者槽,就必须要在类的最开始引入Q_OBJECT这个宏。

信号和槽关联的两种方式

connect(哪个空间发出的信号,啥信号,谁处理这个信号,处理方式是什么);

ui界面右键控件,转到槽:

第二种方式,qmake生成的ui_weight.h中,有下面这个方法,他的作用是启用用名称连接信号和槽

复制代码
QMetaObject::connectSlotsByName(Widget);
复制代码

自定义信号和自定义槽

public slots:

public signals:

自定义槽函数可以使用lambda函数。

触发自定义信号

通过emit关键字手动触发信号

disconnect 断开信号和槽的连接

connect()两个可以让同一个信号被两个槽函数执行

相关推荐
十五年专注C++开发2 分钟前
C++17之类模板实参自动推导CTAD
开发语言·c++·聚合初始化·catd
iCxhust7 分钟前
C# 程序,实现二进制文件十六进制查看器,支持按行定位
开发语言·单片机·嵌入式硬件·c#·微机原理·8086最小系统·8088单板机
咕噜企业签名分发-淼淼13 分钟前
浅谈云服务器在后端托管与签名分发场景中的应用价值
开发语言·php
在繁华处15 分钟前
Java从零到熟练(八):泛型与注解
java·开发语言·python
SilentSamsara16 分钟前
命令行工具开发:Click/Typer + 打包为独立二进制
linux·服务器·开发语言·前端·python·青少年编程·fastapi
Ulyanov17 分钟前
深入QML滑块与进度控制:构建动态数据可视化界面:QML+PySide6现代开发入门(六)
开发语言·python·算法·ui·信息可视化·雷达电子对抗仿真
zyl8372119 分钟前
Python 函数、模块、异常处理 超详细入门教程
开发语言·windows·python
苏州IT威翰德24 分钟前
苏州IT基础架构IQ/OQ/PQ确认服务 | 服务器网络验证
开发语言·php
Xin_ye1008637 分钟前
C# 零基础到精通教程 - WPF 专题二:数据绑定与 MVVM
开发语言·c#·wpf
我是一颗柠檬43 分钟前
【Java后端技术亮点】Feed流三级缓存设计,从10秒到100毫秒的优化实战
java·开发语言·后端·缓存