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

【QT】Q_GLOBAL_STATIC的使用

项目场景:

Qt 提供了 Q_GLOBAL_STATIC 宏,用于在多线程程序中安全地定义全局静态变量。这是一个更推荐的方式,特别是在 Qt
应用程序中,能够避免全局变量可能引起的线程安全问题。

  1. 创建头文件 global.h
#ifndef GLOBAL_H
#define GLOBAL_H

#include <QGlobalStatic>

Q_GLOBAL_STATIC(int, globalVar)

#endif // GLOBAL_H

  1. 在源文件中使用该全局变量
    例如,创建一个 main.cpp 来使用这个全局变量。
#include <QCoreApplication>
#include <QDebug>
#include "global.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    *globalVar() = 42;  // 修改全局变量的值
    qDebug() << "Global Variable:" << *globalVar();

    return a.exec();
}

通过这种方式,你可以在多个源文件中共享和修改这个全局静态变量。

相关文章:

  • 免费提供多样风格手机壁纸及自动更换功能的软件
  • 高速网络包处理,基础网络协议上内核态直接处理数据包,XDP技术的原理
  • C#实现自己的Json解析器(LALR(1)+miniDFA)
  • 正则表达式详解(regular expression)
  • 数据库连接不上,端口号为0?
  • CLR 线程池
  • 构建第二个Django的应用程序
  • Androidstudio出现警告warning:意外的元素
  • 《Linux系统编程篇》Linux Socket 网络编程01 API介绍(Linux 进程间通信(IPC))——基础篇
  • 学习知识的心理和方法杂记-04
  • HTML和CSS基础
  • Windows部署deepseek R1训练数据后通过AnythingLLM当服务器创建问答页面
  • mysql之DATE_FORMAT迁移到gbase8s
  • Linux设置串口永久权限
  • Flutter运行错误:UG! exception in phase ‘semantic analysis‘
  • 2024年河南省职业院校 技能大赛高职组 “大数据分析与应用” 赛项任务书(四)
  • Jetson Nano配置指南(四):YOLOv8/v11使用TensorRT加速
  • A l密码学(Deepseek)
  • 超硬核区块链算法仿真:联盟链PBFT多线程仿真实现 :c语言完全详解版
  • 在 Vue 项目中调用 DeepSeek API(示例篇)
  • 特朗普:将于19日分别与普京和泽连斯基通话
  • 国宝文物子弹库帛书二、三卷从美启程,18日凌晨抵京
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他
  • 新片|《碟中谍8:最终清算》定档5月30日
  • 泽连斯基已离开土耳其安卡拉
  • 李强:把做强国内大循环作为推动经济行稳致远的战略之举