C++ qt连接不同窗口中的类
我想这是一个初学者的QT问题,所以我希望你能给我一个简单的例子来解决我的问题 我有我的登录窗口:C++ qt连接不同窗口中的类,c++,qt,class,C++,Qt,Class,我想这是一个初学者的QT问题,所以我希望你能给我一个简单的例子来解决我的问题 我有我的登录窗口: #include "logint.h" #include "ui_logint.h" LoginT::LoginT(QWidget *parent) : QMainWindow(parent), ui(new Ui::LoginT) { ui->setupUi(this); QPixmap pix("C:/Users/Boushar/Desktop/Bachelor_Fre
#include "logint.h"
#include "ui_logint.h"
LoginT::LoginT(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::LoginT)
{
ui->setupUi(this);
QPixmap pix("C:/Users/Boushar/Desktop/Bachelor_Fred/Coden/UbbenLogoKlein.jpg");
ui->label_pic->setPixmap(pix);
if(!connOpen())
ui->label->setText("Failed to open Database");
else
ui->label->setText("Connected.....");
}
LoginT::~LoginT()
{
delete ui;
}
void LoginT::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch(e->type())
{
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void LoginT::on_pushButton_clicked()
{
QString username, password;
username = ui->lineEdit_username->text();
password = ui->lineEdit_password->text();
if(!connOpen())
{
qDebug() << "Failed to open the database";
return;
}
connOpen();
QSqlQuery qry;
qry.prepare("select * from Worker where wo_login_name='" + username + "' and wo_password='" + password + "'");
if(qry.exec())
{
int count = 0;
while(qry.next())
count++;
if(count == 1)
{
ui->label->setText("username and password is correct");
connClose();
this->hide();
WorkerT workert;
workert.setModal(true);
workert.exec();
}
if(count > 1)
ui->label->setText("Duplicate username and password");
if(count < 1)
ui->label->setText("username and password is not correct");
}
}
#包括“logint.h”
#包括“ui\u logint.h”
LoginT::LoginT(QWidget*父项):
QMainWindow(父级),
用户界面(新用户界面::登录)
{
用户界面->设置用户界面(此);
QPixmap pix(“C:/Users/Boushar/Desktop/Bachember_Fred/Coden/UbbenLogoKlein.jpg”);
ui->label_pic->setPixmap(pix);
如果(!connOpen())
ui->label->setText(“打开数据库失败”);
其他的
ui->label->setText(“已连接…”);
}
登录::~LoginT()
{
删除用户界面;
}
无效登录::变更事件(QEvent*e)
{
QMainWindow::changeEvent(e);
开关(e->type())
{
案例QEvent::LanguageChange:
用户界面->重传(此);
打破
违约:
打破
}
}
无效登录::在按钮上单击()
{
QString用户名、密码;
username=ui->lineEdit_username->text();
password=ui->lineEdit_password->text();
如果(!connOpen())
{
qDebug()标签->设置文本(“用户名和密码正确”);
connClose();
这个->隐藏();
沃克特沃克特;
workert.setModal(真);
workert.exec();
}
如果(计数>1)
用户界面->标签->设置文本(“重复的用户名和密码”);
如果(计数<1)
ui->label->setText(“用户名和密码不正确”);
}
}
在我的登录窗口中,我必须输入我的用户数据(用户名和密码),然后将其与我的数据库进行比较,并返回特定于用户的数据。现在我的第二个窗口打开了
如何管理我的第二个窗口从第一个窗口获取用户信息?我猜这是一个非常简单的解决方案,但我来自C++编程,我会把它提交给我的主要工作。
我忘了提到我为我的用户提供了一个类。只需让主窗口在构造函数中获取一个
user
-对象即可
在主窗口类中,构造函数应如下所示:
MainWindow(QWidget* parent, User user);
auto w = new MainWindow(this, your_user);
w->show();
身份验证后,按如下方式显示:
MainWindow(QWidget* parent, User user);
auto w = new MainWindow(this, your_user);
w->show();
然后我可以在我所有的窗口使用它?你能给我一个简单的代码示例吗?@FrederikUbben我添加了非常小的代码示例。希望能有帮助。摆脱了“测试讲话”的拼写,这些拼写会中断流程;-)