当前位置: 首页 > 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();
}

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

http://www.dtcms.com/a/81090.html

相关文章:

  • 免费提供多样风格手机壁纸及自动更换功能的软件
  • 高速网络包处理,基础网络协议上内核态直接处理数据包,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(示例篇)
  • 第十三章,L2TP VPN
  • 【设计模式】观察者模式
  • 用python制作一个俄罗斯方块小游戏
  • 如何 使用 Docker 部署 ollama 和 MaxKB
  • scrapy入门(深入)
  • 电脑如何设置几分钟后自动关机
  • ORACLE 19.8版本数据库环境EXPDP导数据的报错处理
  • LeetCode 139 —— 139.单词拆分
  • Thinkphp 多文件压缩
  • Java 大视界 -- 基于 Java 的大数据机器学习模型的多模态融合技术与应用(143)