Qt小知识-Q_GLOBAL_STATIC

news/2024/11/20 20:00:26/

你还在为创建全局静态对象烦恼嘛,它来了!它来了!

qt5提供了两个宏定义Q_GLOBAL_STATIC和Q_GLOBAL_STATIC_WITH_ARGS来实现。可以创建一个全局静态对象,对象在第一次使用时初始化自身,这意味着它不会增加应用程序或库的加载时间。此外,该对象在所有平台上都以线程安全的方式初始化。

官网 QGlobalStatic Struct | Qt Core 5.15.18

简单例子

globalclass.h

#ifndef GLOBALCLASS_H
#define GLOBALCLASS_H#include <QObject>class globalClass
{
public:globalClass(QString tstr = "");void test();
};
Q_GLOBAL_STATIC(globalClass,GLOBALCLASS)
Q_GLOBAL_STATIC_WITH_ARGS(globalClass,GLOBALCLASS2, ("Hello word"))#endif // GLOBALCLASS_H

globalclass.cpp

#include "globalclass.h"
#include <QDebug>
globalClass::globalClass(QString tstr)
{qDebug() << tstr << this;
}void globalClass::test()
{qDebug() << "oooo";
}

使用

//#include "globalclass.h"GLOBALCLASS->test();GLOBALCLASS2()->test();


http://www.ppmy.cn/news/1548557.html

相关文章

Gin 中自定义控制器

1、控制器分组 当我们的项目比较大的时候有必要对我们的控制器进行分组 新建 controller/admin/NewsController.go package admin import ( "net/http" "github.com/gin-gonic/gin" )

kafka不同的消费场景

kafka常见的消费场景 从头开始消费从最新偏移量消费从特定时间戳偏移量消费 kafka消费场景详细配置方法 消费模式配置参数场景从头开始消费scan.startup.modeearliest-offset回放所有历史数据从最新偏移量消费scan.startup.modelatest-offset实时消费新数据从特定时间戳消费…

LLM学习笔记(5)微调 Fine-tuning

什么是微调&#xff08;Fine-tuning&#xff09;&#xff1f; 微调&#xff08;Fine-tuning&#xff09;是指在预训练模型&#xff08;如 GPT&#xff09;基础上&#xff0c;通过加入特定的数据对模型进行进一步训练&#xff0c;以优化其在某一特定任务或领域上的表现。它的主…

0x00基础算法 -- 0x06 倍增

资料来源&#xff1a;算法竞赛进阶指南活动 - AcWing 1、倍增 倍增&#xff1a;"成倍增长"&#xff0c;指进行递推时&#xff0c;如果状态空间很大&#xff0c;通常的线性递推无法满足时间和空间复杂度的要求&#xff0c;就可以通过成倍增长的方式&#xff0c;只递推…

如何使用虚拟机 打开另一个虚拟机的 硬盘

问题&#xff1a; 我在鼓捣一个虚拟机的 nvim 的时候&#xff0c;突然搞成 segment fault , 系统无法启动&#xff0c;但是&#xff0c;我编译的源码还在 这个虚拟机中。 解决过程&#xff1a; 直接使用 另一个 虚拟机&#xff0c; 添加这个虚拟机的硬盘。 我之前的虚拟机是这…

Python设计模式详解之5 —— 原型模式

Prototype 设计模式是一种创建型设计模式&#xff0c;它通过复制已有的实例来创建新对象&#xff0c;而不是通过从头实例化。这种模式非常适合对象的创建成本较高或者需要避免复杂的构造过程时使用。Prototype 模式提供了一种通过克隆来快速创建对象的方式。 1. Prototype 模式…

Mac 修改默认jdk版本

当前会话生效 这里演示将 Java 17 版本降低到 Java 8 查看已安装的 Java 版本&#xff1a; 在终端&#xff08;Terminal&#xff09;中运行以下命令&#xff0c;查看已安装的 Java 版本列表 /usr/libexec/java_home -V设置默认 Java 版本&#xff1a; 找到 Java 8 的安装路…

鸿蒙NEXT开发案例:计数器

【引言】&#xff08;完整代码在最后面&#xff09; 本文将通过一个简单的计数器应用案例&#xff0c;介绍如何利用鸿蒙NEXT的特性开发高效、美观的应用程序。我们将涵盖计数器的基本功能实现、用户界面设计、数据持久化及动画效果的添加。 【环境准备】 电脑系统&#xff1…