打印

QT全局变量的调用

[复制链接]
288|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
卡拉瓦乔|  楼主 | 2018-7-11 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、使用static关键字:

头文件声明:声明为public类型变量

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 QString c;
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H




源文件定义:注意这里的变量定义,一定要写在函数的外面。

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtMath>
#include <qwt_plot.h>
#include <qwt_plot_curve.h> //是包含QwtPointSeriesData类的头文件
#include <qwt_plot_grid.h>

int MainWindow::a = 100;
QString MainWindow::c = "clue";

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    qDebug()<<"a="<< a;

    ui->textBrowser->setText(c);
//..........................后面代码省略

调用方式:在函数里面调用全局变量



2、使用extern关键字:

cglobal.h  (声明写在类和命名控件的外面)

[cpp] view plain copy
#ifndef CGLOBAL_H  
#define CGLOBAL_H  
extern int testValue;  
#endif // CGLOBAL_H  
cglobal.cpp  (在函数外面定义变量)


[cpp] view plain copy
#include "cglobal.h"  

int testValue=1;  
调用方式


[cpp] view plain copy
#include "cglobal.h"  
#include <QDebug>  

qDebug()<<testValue;  
testValue=2;  
qDebug()<<testValue;  
第一种使用static关键字的全局变量,第二种会破坏封装性。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

438

主题

438

帖子

0

粉丝