面对QT C++中全局变量的一些问题。

问题描述 投票:0回答:1

我有一个登录页面和一个欢迎页面(如果用户可以绕过登录,就会打开)。在我的登录页面中,有一个输入用户名的编辑行,因此,为了保存用户名,我在login.h.文件中声明了一个全局变量。所以,为了保存用户名,我在login.h.My login.h文件中声明了一个全局变量。

#include <QSqlQuery>
#include <QGridLayout>
#include <QPushButton>
#include <QString>
#include <QLabel>
#include <QFrame>
#include <QSqlRecord>
#include <QFileDialog>
#include <QPixmap>
#include <QMessageBox>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class login : public Qlogin
{
   Q_OBJECT

  public:
  login(QWidget *parent = nullptr);
  ~login();

 private:
  Ui::login *ui;
     QString userDat; ///global variable
 };
 #endif // MAINWINDOW_H

我在login.cpp文件中保存了来自行编辑的用户名,就像这样。

我的login.cpp文件。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlQueryModel>
#include <QSqlQuery>
#include <QGridLayout>
#include <QPushButton>
#include <QString>
#include <QLabel>
#include <QFrame>
#include <QSqlRecord>
#include <QFileDialog>
#include <QPixmap>
#include <QMessageBox>

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

userDat = ui-> login_lineEdit ->text();


 }

  login::~login()
 {
  delete ui;
  }

我想在我的welcome.cpp文件中使用全局变量userDat,像这样。

ui-> welcome_lineEdit->setText(userDat);

我已经在welcome.h和welcome.cpp中包含了所有需要的头文件。但是它仍然说:userDat没有在这个范围内声明,请帮助我。

sqlite qt global-variables qt5
1个回答
0
投票

评论中的更新。

#include <QSqlQuery>
#include <QGridLayout>
#include <QPushButton>
#include <QString>
#include <QLabel>
#include <QFrame>
#include <QSqlRecord>
#include <QFileDialog>
#include <QPixmap>
#include <QMessageBox>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class UserData { 
public: 
static QString userName; 
};

class login : public Qlogin
{
   Q_OBJECT

  public:
  login(QWidget *parent = nullptr);
  ~login();

 private:
  Ui::login *ui;
 };
 #endif // MAINWINDOW_H

在 login.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlQueryModel>
#include <QSqlQuery>
#include <QGridLayout>
#include <QPushButton>
#include <QString>
#include <QLabel>
#include <QFrame>
#include <QSqlRecord>
#include <QFileDialog>
#include <QPixmap>
#include <QMessageBox>

QString UserData::userName = "empty";

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

UserData::userName = ui-> login_lineEdit ->text();


 }

  login::~login()
 {
  delete ui;
  }

而在另一个地方的某处。

ui-> welcome_lineEdit->setText(UserData::userName);
© www.soinside.com 2019 - 2024. All rights reserved.