QT编程之——使用全局变量
在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编程之——使用全局变量相关推荐
- 【转】10.Qt编程涉及的术语和名词
本节我们来介绍一下使用 Qt 编程过程中常用的术语和名字,它们不一定专属于 Qt,在其它的 C/C++ 开发过程中也会使用到. Project Project 的中文翻译是"项目" ...
- Qt编程中的信号和槽机制
Qt编程中的信号和槽机制 在使用自定义类创建一个按钮之后,只能看到一个按钮的图形,但是使用鼠标点击并无任何反应,下面想要实现一个"点击按钮可以关闭窗口"的功能. 关闭窗口的功能可以 ...
- Qt编程公众号二维码
Qt编程公众号二维码
- QT编程 批量打印二维码
1.下载打印机驱动,驱动下载在资源列表里 2.QT编程 打印机初始化 3.打印机命令网上有文档,QRCODE命令打印二维码,内容自定义 主要是设置打印亚银纸张 长宽大小.字体大小.打印纸张位置,二维码 ...
- Qt编程基础:认识常用的基本类型
前言 上一节已经成功创建了一个Qt项目,接下来就是要在创建好的项目中,添加自己想要的功能.在写代码之前,我们需要掌握Qt的一些基础知识. 语法部分就不用讲了,这系列文章是对有C或C++语言基础的同学展 ...
- 学习 Qt 编程的好书精品推荐!
学习 Qt 编程的好书精品推荐! 最近一段时间,准备开始搞Qt方面的东西,想找几本书看看.网上介绍QT的书籍也有很多,不想浪费时间,所以想找几本精品的书籍来看.花了半天的时间找了几本非常不错的,这里面 ...
- Qt终极教程——用Qt编程实现中国象棋游戏(提供源代码和程序编译运行教程)
Qt终极教程--用Qt编程实现中国象棋游戏 目录 Qt终极教程--用Qt编程实现中国象棋游戏 简介 运行可执行程序体验象棋游戏 Qt 安装 源代码的编译.运行与调试 生成预编译的可执行程序 简介 本文 ...
- 第二章 Qt编程核心技术
QT编程核心技术介绍 第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎 ...
- QT编程核心技术介绍
第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎不需要关心这些区别,使 ...
最新文章
- matlab gui数据类型,MatLab GUI 数据传递
- Linux下查找、删除、替换命令
- Pytorch入门.pptx
- 安装archlinux
- mysql explain语句_Mysql explain 语句详解
- 【Python CheckiO 题解】Even the Last
- GridView类容器中的DropDownList联动
- 独家:中国电信提出建产业统一开发平台 避免个人与政企业务脱节
- 1006 换个格式输出整数 (15 分)—PAT (Basic Level) Practice (中文)
- golang 时间戳和时间互转
- adb命令从手机端复制数据库文件到PC
- LEWITT莱维特STREAM4x5、DGT260声卡安装调试教程
- USBKEY全解析---概要介绍
- 一万年很长,所以只争朝夕
- 既是老师又是师兄的临别箴言
- 随机函数c语言对打,20165323 学习基础和C语言基础调查
- RK3288 NFS rootfs修改和操作(已验证)
- ear的英语怎么念_鸡娃英语的你,需要翻越三座大山
- 数据库的设计的六个阶段
- 图片转PDF软件免费获取激活码
热门文章
- i美股投资研报--Michael Kors(IPO版) _Michael Kors(KORS) _i美股
- Android 自定义AlertDialog类
- coding4fun比赛总结
- 对话奇安信代码安全丨十年砥砺前行 迎来软件供应链安全的风口
- 【BCS2021】软件供应链完整演讲回看
- 阿里云IoT安全运营中心-Link SOC,安全运营托管功能发布
- Linux入门:usermod - 修改用户帐户信息
- 安装XHProf分析PHP性能瓶颈(原创)
- Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7) 【转】
- jquery[学习心得]ajax的注意点