Qt编程中有关全局变量的一个问题解决

需要使用qwt来完成界面图表的绘制,然而在自己的Demo中测试成功的,如下
Qt编程中有关全局变量的一个问题解决
然而当把图表以及Style选择模块放入主工程时却发生了以下错误
Qt编程中有关全局变量的一个问题解决
具体错误打开后如下
/home/tl/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/armv5te-3.3-oe-linux-gnueabi/usr/include/qtopia/QtCore/qmetatype.h:66:9: error: expected identifier before ‘void’
/home/tl/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/armv5te-3.3-oe-linux-gnueabi/usr/include/qtopia/QtCore/qmetatype.h:66:9: error: expected ‘}’ before ‘void’
/home/tl/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/armv5te-3.3-oe-linux-gnueabi/usr/include/qtopia/QtCore/qmetatype.h:66:14: error: expected unqualified-id before ‘=’ token
/home/tl/ti/mcsdk_1_01_00_02/linux-devkit/sysroots/armv5te-3.3-oe-linux-gnueabi/usr/include/qtopia/QtCore/qmetatype.h:129:1: error: expected declaration before ‘}’ token
思考了很久,和相关的.h也看了,发现并不能找到改的可能,于是一点一点的把添加的程序注释掉,看是哪里导致的问题,最后发现是添加的两个头文件#include “qwt_plot_grid.h”
#include "qwt_symbol.h"导致的错误,首先解释一下,这两个类用来实时调整图表中的网格线样式以及实时调整整个节目样式的类,因为有多个函数要用到,所以将它们定义为全局的变量,这样都就可以拿着用了,然而现在却出错了。

解决
经过查找,发现Qt中还有另一种定义全局变量的方法,是在mainwindow.cpp的构造函数前面直接定义即可,可见下
Qt编程中有关全局变量的一个问题解决
如图,这样就不用再在mainwindow.h里面定义那两个全局变量,在cpp里面定义即可,之后程序编译顺利通过如下~
Qt编程中有关全局变量的一个问题解决