在Qt中使用全局变量的实例
1.首先须要在一个头文件里对全局了变量使用exern方法进行定义。

//g.h
extern char *testStr;

2.仅仅能在cpp文件里对事实上例化,而且实例化仅仅能在函数的外部进行。建议在包括main函数的cpp文件里进行实例化,这样能够确保在其它文件里使用时。它已经被实例化。

//a.h
#include "g.h"
char *testStr="hello world";
void main()
{cout<<testStr<<endl;testStr="hello China";
}

3. 其它文件仅仅要包括了g.h这个头文件。就能够改动或者訪问这个全局变量,而不须要再次实例化。

//b.h
//该文件里就能够不须要实例化全局变量了。
#include "g.h"
void mytest()
{cout<<testStr<<endl;
}

比方我在externData.h文件里定义全局变量

#ifndef EXTERNDATA_H
#define EXTERNDATA_H#include "basicclassroom.h"//定义全部房间信息集合List全局变量。其它文件引用
QList<BasicClassRoom*>* roomList;#endif // EXTERNDATA_H

我在main.cpp文件里须要引用这个全局变量,并声明,须要初始化roomList。引用externData.h文件

#include "excellenthomepage.h"
#include <QApplication>
#include <QTextCodec>
#include <QtDebug>
#include <QFile>
#include <QDate>
#include <QTextStream>
#include "qstringlist.h"
#include "externData.h"extern QList<BasicClassRoom*>* roomList;//依据配置文件获取全部房间信息。存储到全局变量RoomList中
void getAllRoomList()
{//推断是否有配置文件roomList = new QList<BasicClassRoom*>();QString data = NULL;QTextCodec *codec = QTextCodec::codecForName("utf-8");QFile file("room.txt");if(file.exists()){file.open( QIODevice::ReadOnly| QIODevice::Text );QTextStream qts(&file);qts.setCodec(codec);data = codec->fromUnicode(qts.readAll());file.close();}QStringList sections = data.split("]"); //把每个块装进一个QStringList中for(int j=0;j<sections.length()-1;j++){BasicClassRoom *room = room->roomFromJsonData(sections.at(j));roomList->append(room);qDebug()<<"[AAAAAAAAAAA]"<<room->getRoomName();qDebug()<<"[BBBBBBBBBBB]"<<room->roomToJsonData();}
}int main(int argc, char *argv[])
{QApplication a(argc, argv);QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));//设置中文,解决显示乱码问题。一句话足矣getAllRoomList();ExcellentHomePage w;w.show();return a.exec();
}

我想在其它文件里引用这个全局变量。我不须要再引用externData.h文件

#include "zonepageform.h"
#include "ui_zonepageform.h"
#include "basicclassroom.h"extern QList<BasicClassRoom*>* roomList;ZonePageForm::ZonePageForm(QWidget *parent) :QWidget(parent),ui(new Ui::ZonePageForm)
{ui->setupUi(this);roomSize = 0;//首先初始化界面中的元素ui->RoomLabel->setText(roomList->at(0)->getRoomName());
}

QT编程之——使用全局变量相关推荐

  1. 【转】10.Qt编程涉及的术语和名词

    本节我们来介绍一下使用 Qt 编程过程中常用的术语和名字,它们不一定专属于 Qt,在其它的 C/C++ 开发过程中也会使用到. Project Project 的中文翻译是"项目" ...

  2. Qt编程中的信号和槽机制

    Qt编程中的信号和槽机制 在使用自定义类创建一个按钮之后,只能看到一个按钮的图形,但是使用鼠标点击并无任何反应,下面想要实现一个"点击按钮可以关闭窗口"的功能. 关闭窗口的功能可以 ...

  3. Qt编程公众号二维码

    Qt编程公众号二维码

  4. QT编程 批量打印二维码

    1.下载打印机驱动,驱动下载在资源列表里 2.QT编程 打印机初始化 3.打印机命令网上有文档,QRCODE命令打印二维码,内容自定义 主要是设置打印亚银纸张 长宽大小.字体大小.打印纸张位置,二维码 ...

  5. Qt编程基础:认识常用的基本类型

    前言 上一节已经成功创建了一个Qt项目,接下来就是要在创建好的项目中,添加自己想要的功能.在写代码之前,我们需要掌握Qt的一些基础知识. 语法部分就不用讲了,这系列文章是对有C或C++语言基础的同学展 ...

  6. 学习 Qt 编程的好书精品推荐!

    学习 Qt 编程的好书精品推荐! 最近一段时间,准备开始搞Qt方面的东西,想找几本书看看.网上介绍QT的书籍也有很多,不想浪费时间,所以想找几本精品的书籍来看.花了半天的时间找了几本非常不错的,这里面 ...

  7. Qt终极教程——用Qt编程实现中国象棋游戏(提供源代码和程序编译运行教程)

    Qt终极教程--用Qt编程实现中国象棋游戏 目录 Qt终极教程--用Qt编程实现中国象棋游戏 简介 运行可执行程序体验象棋游戏 Qt 安装 源代码的编译.运行与调试 生成预编译的可执行程序 简介 本文 ...

  8. 第二章 Qt编程核心技术

    QT编程核心技术介绍 第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎 ...

  9. QT编程核心技术介绍

    第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎不需要关心这些区别,使 ...

最新文章

  1. matlab gui数据类型,MatLab GUI 数据传递
  2. Linux下查找、删除、替换命令
  3. Pytorch入门.pptx
  4. 安装archlinux
  5. mysql explain语句_Mysql explain 语句详解
  6. 【Python CheckiO 题解】Even the Last
  7. GridView类容器中的DropDownList联动
  8. 独家:中国电信提出建产业统一开发平台 避免个人与政企业务脱节
  9. 1006 换个格式输出整数 (15 分)—PAT (Basic Level) Practice (中文)
  10. golang 时间戳和时间互转
  11. adb命令从手机端复制数据库文件到PC
  12. LEWITT莱维特STREAM4x5、DGT260声卡安装调试教程
  13. USBKEY全解析---概要介绍
  14. 一万年很长,所以只争朝夕
  15. 既是老师又是师兄的临别箴言
  16. 随机函数c语言对打,20165323 学习基础和C语言基础调查
  17. RK3288 NFS rootfs修改和操作(已验证)
  18. ear的英语怎么念_鸡娃英语的你,需要翻越三座大山
  19. 数据库的设计的六个阶段
  20. 图片转PDF软件免费获取激活码

热门文章

  1. i美股投资研报--Michael Kors(IPO版) _Michael Kors(KORS) _i美股
  2. Android 自定义AlertDialog类
  3. coding4fun比赛总结
  4. 对话奇安信代码安全丨十年砥砺前行 迎来软件供应链安全的风口
  5. 【BCS2021】软件供应链完整演讲回看
  6. 阿里云IoT安全运营中心-Link SOC,安全运营托管功能发布
  7. Linux入门:usermod - 修改用户帐户信息
  8. 安装XHProf分析PHP性能瓶颈(原创)
  9. Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7) 【转】
  10. jquery[学习心得]ajax的注意点