QT 使用全局变量共有两种方法(次贴讲的是写“全局类”的方法):
1.使用“static”关键字,将数据保存到数据区中
2.使用“extern”关键字
一、static
在“MainWindow .h”文件中声明变量变量和方法
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
声明变量和方法
static int a;
static void show();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
然后在“MainWindow .cpp”文件中实现方法和变量
#include "mainwindow.h"
#include "ui_mainwindow.h"
int MainWindow::a = 100;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
qDebug()<<"a="<< a;
}
void MainWindow::show()
{
方法实现
}
注意:变量要写在方法外面,可以在构造中进行初始化,但是要实例化全局类的对象
二、extern(不建议使用,封装性被破坏)
在写好的全局类(MainWindow )外面(“MainWindow .h”最后面)写:
extern MainWindow *G_Lform;
之后就可以直接用G_Lform->“MainWindow ”中的变量和方法了
东西不难,个人喜欢第一种,封装性更好,更容易理解和使用