Qt中,经常会出现一个工程下面多个.cpp文件都需要调用或者改变某一个变量的问题,这个时候往往有两种解决办法:第一种是利用信号与槽的机制,第二种方法就是利用全局变量。下面着重说一下第二种:
比如说我在myLabel.h 定义了一个变量 int penSize 作为全局变量,需要用extern:
在头文件中声明:
extern int penSize;//注意是声明不是定义,不赋值
class myLabel{
public:
//...
};
然后在myLabel.cpp中,定义它:
int penSize =2;//不要放函数里面,如下面的构造函数
myLabel ::myLabel(){
//...
}
这样的话,接下来比如在mainwindow.cpp中就可以调用这个全局变量了:
首先先在mainwindow.cpp中包含myLabel.h
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mylabel.h"
然后就可以在mainwindow.cpp 中的某个函数调用这个全局变量,比如:
void MainWindow::on_wide_btn_clicked()
{
penSize=5;
}