Возникла проблема с глобальной переменной в QT C ++ - PullRequest
0 голосов
/ 27 мая 2020

У меня есть страница входа и страница приветствия (которые открываются, если пользователь может обойти вход в систему). На моей странице входа в систему есть строка для ввода имени пользователя. Итак, для хранения имени пользователя я объявил глобальную переменную в файле login.h. Мой файл 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

У меня есть имя пользователя из строки редактирования в логине. cpp вот так.

Мой логин. 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;
  }

Я хочу использовать глобальную переменную userDat в моем приветствии. cpp файл, подобный этому.

ui-> welcome_lineEdit->setText(userDat);

Я включил все необходимые заголовочные файлы в welcome.h и добро пожаловать. cpp. Но по-прежнему говорится: userDat не объявлен в этой области. помогите пожалуйста

1 Ответ

0 голосов
/ 27 мая 2020

Обновление из комментариев:

#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

в логине. 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...