十五、QT之 extern 关键字传递全局变量

案例

1、声明全局变量

main.cpp

#include "mymainwindow.h"
#include <QApplication>
#include <QTranslator>
#include <QSettings>

//全局变量
QTranslator *translator = NULL;
QString readSetting();

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    //加载翻译文件
    translator = new QTranslator;
    QString curLanguage = readSetting();
    if (curLanguage == "EN")
        translator->load("samp14_3_en.qm");
    else
        translator->load("samp14_3_cn.qm");
    a.installTranslator(translator);

    MyMainWindow w;
    w.show();

    return a.exec();
}

2、引入全局变量

extern QTranslator *translator;
#include "mymainwindow.h"
#include "ui_mymainwindow.h"

//从外部导入 main.cpp 中的 QTranslator 对象
extern QTranslator *translator;

MyMainWindow::MyMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MyMainWindow)
{
    ui->setupUi(this);

    ......
}

版权声明:本文为panchang199266原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。