当前位置: 首页 > news >正文

C++ QT 全局信号的实现

每次做全局信号都需要重新建立文件,太麻烦了,记录一下,以后直接复制。

头文件 globalSignalEmitter.h

#pragma once
//#ifndef GLOBALSIGNALEITTER_H
//#define GLOBALSIGNALEITTER_H#include <QObject>class GlobalSignalEmitter : public QObject
{Q_OBJECTpublic:static GlobalSignalEmitter* instance();//全局信号实现,原理就是只有一个静态类
Q_SIGNALS:void msgOutputToExtra(const QString &msg);private:GlobalSignalEmitter(QObject* parent = nullptr);static GlobalSignalEmitter* m_instance;
};//#endif // GLOBALSIGNALEITTER_H

.cpp文件

// GlobalSignalEmitter.cpp
#include "GlobalSignalEmitter.h"GlobalSignalEmitter* GlobalSignalEmitter::m_instance = nullptr;GlobalSignalEmitter::GlobalSignalEmitter(QObject* parent) : QObject(parent) {}GlobalSignalEmitter* GlobalSignalEmitter::instance()
{if (!m_instance)m_instance = new GlobalSignalEmitter;return m_instance;
}

原理很简单,静态函数构造静态类,然后在里面添加信号就行了。这样只用添加头文件就可以在全局使用这个信号,在对应的地方直接使用connect函数连接对于的槽函数就行了。

http://www.lryc.cn/news/394778.html

相关文章:

  • 十款绚丽的前端 CSS 菜单导航动画
  • debain系统使用日志
  • 【Word】快速对齐目录
  • MATLAB基础应用精讲-【数模应用】 岭回归(Ridge)(附MATLAB、python和R语言代码实现)
  • 推荐6个开源博客项目源码,你会选哪个呢
  • OCR text detect
  • 【MySQL】MySQL连接池原理与简易网站数据流动是如何进行
  • 学数据结构学的很慢,毫无头绪怎么办 ?
  • VSCode常用快捷键和功能
  • 上海市计算机学会竞赛平台2023年2月月赛丙组平分数字(一)
  • Qwen1.5-1.8b部署
  • 关于7月1号centos官方停止维护7系列版本导致centos7+版本的机器yum等命令无法使用的解决教程
  • 2024人工智能大会_强化学习论坛相关记录
  • Android SurfaceFlinger——创建EGLContext(二十五)
  • python 10个自动化脚本
  • 填报高考志愿,怎样正确地选择大学专业?
  • Java 使用sql查询mongodb
  • WIN32核心编程 - 线程操作(二) 同步互斥
  • web自动化(六)unittest 四大组件实战(京东登录搜索加入购物车)
  • 鸿蒙语言基础类库:【@ohos.process (获取进程相关的信息)】
  • 华为笔试题
  • 【MySQL基础篇】函数及约束
  • YOLOv9报错:AttributeError: ‘list‘ object has no attribute ‘view‘
  • Bert入门-使用BERT(transformers库)对推特灾难文本二分类
  • 【DFS(深度优先搜索)详解】看这一篇就够啦
  • java-spring boot光速入门教程(超详细!!)
  • 一、Prometheus和Grafana搭建
  • 从零开始的python学习生活
  • MSP学习
  • 生产力工具|Endnote X9如何自动更新文件信息