Я создал страницу входа в систему и пытаюсь получить имя пользователя, который вошел в систему, а затем отобразить его на следующей странице и настроить свою программу в соответствии с человеком, вошедшим в систему.
Но Я отчаянно сталкиваюсь с той же проблемой, я не могу извлечь переменную из слота, чтобы повторно использовать ее и сделать все, что я должен с ней делать :( Поэтому мне интересно, если это специфика слота (я запускаю Qt, и я не я не знаю много об этом) или если я тот, кто не все делает правильно.
PS: Я, очевидно, прочитал и перечитал документацию Qt по этому поводу, но это не слишком помогает.
Мой код:
glybook. cpp (где я хочу разместить информацию для входа)
#include "ui_glybook.h"
glybook::glybook(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::glybook)
{
ui->setupUi(this);
//qDebug() << receiveConnectionData(username);
test();
}
void glybook::receiveConnectionData(QString name){
username = name;
//qDebug() << username;
ui->label->setText("Connected: "+username);
}
void glybook::test(){
qDebug() << ui->label->text();
}
glybook::~glybook()
{
delete ui;
}
glybook.h
class Glybook;
}
class Glybook : public QMainWindow
{
Q_OBJECT
public:
explicit Glybook(QWidget *parent = nullptr);
~Glybook();
void test();
private slots:
void receiveConnectionData(QString);
private:
Ui::Glybook *ui;
QString username;
};
соединение. cpp (страница входа)
#include "./ui_connection.h"
Connection::Connection(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::Connection)
{
ui->setupUi(this);
}
Connection::~Connection()
{
delete ui;
}
void Connection::on_pushButton_clicked()
{
QString user = ui->lineEdit->text();
QString pass = ui->lineEdit_2->text();
glybook* page = new glybook();
connect(this, SIGNAL(sendConnectData(QString)), page, SLOT(receiveConnectionData(QString)));
emit sendConnectData(user);
page->show();
this->close();
}
соединение. ч
#define CONNECTION_H
#include <QMainWindow>
#include <QMessageBox>
#include "glybook.h"
QT_BEGIN_NAMESPACE
namespace Ui { class Connection; }
QT_END_NAMESPACE
class Connection : public QMainWindow
{
Q_OBJECT
public:
Connection(QWidget *parent = nullptr);
~Connection();
private slots:
void on_pushButton_clicked();
signals:
void sendConnectData(QString);
private:
Ui::Connection *ui;
};
#endif // CONNECTION_H
main. cpp
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Connection w;
w.show();
return a.exec();
}