title: Qt实现登录效果(超详细!超简单!) date: 2022-8-13 tags:
学习C++Qt categories:Qt
:::tip 🍓🍊从一个界面按登录跳转到另一个界面🍭🍓🍬 :::
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/06d926d9aa2e4bf39f90c2e2d443e6eb.png#pic_center)
首先在登录界面输入正确的用户名和密码后点击登录,即可跳到第二个Hello World!界面!
![在这里插入图片描述](https://img-blog.csdnimg.cn/bf2e3ca88ac04244964b905a0155e8e0.png#pic_center)
如何实现(按照我的步骤来,保证成功!)
1.我的文件目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cb9a51a00be47a49400a6f2ce40d4cb.png#pic_center)
说明:
在我的工程目录下面主要有三个源文件 hello.cpp、login.cpp、main.cpp其关系是:main.cpp是主文件,login.cpp是登录界面的文件,点击登录后会跳转到hello.cpphello world页面然后Resources是我为工程添加的一个资源文件,里面主要放的是页面的背景图片,这个目录可有可无 我在这里假设大家已经有一个主页面,也就是我的hello.cpp文件,还要添加一个登录页面,也就是我的login.cpp文件,下面详细讲一下其添加步骤
首先右击工程目录,也就是我的myFirst,选择添加新文件,然后选择Qt里面的:Qt设计师界面类,再选择choose,如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/70a6bd3bf3f34cdb9ca441c7cf1d62e7.png#pic_center) 然后选择Dialog without Buttons 再点击下一步: ![在这里插入图片描述](https://img-blog.csdnimg.cn/876fe1e718c6491598f5277350bac2b0.png#pic_center) 将类名改为和我一样的login 再点击下一步: ![在这里插入图片描述](https://img-blog.csdnimg.cn/77a95c72f60944bfba98bcb9f0d4ccd2.png#pic_center) 最后点击完成: ![在这里插入图片描述](https://img-blog.csdnimg.cn/ff3989272d724085aadd1090f30c9606.png#pic_center) 现在你就会看到在你的工程目录下多了login.cpp、login.h、login.ui三个文件
2.设计
步骤
双击上面我们新建的login.ui文件进入到设计师界面,拖动控件完成以下界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/7ef0385254c44af294eb1b93f6027922.png#pic_center)
注意事项:
用户名和密码对应的是两个Label标签,两个输入框对应的是Line Edit,并且要在右边的对象栏里面将其对象名分别改为username和password,改完名字后一定要点击保存
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cb87a32c9594684b246630a6a5f6134.png#pic_center)
选中登录按钮的pushbutton右击选择转到槽,如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9503f6377224c4daae1edfde190ce3f.png#pic_center)
就来到了login.cpp的编辑页面
![在这里插入图片描述](https://img-blog.csdnimg.cn/20790cb7cf514c06b2355ed4c0ce8618.png#pic_center)
在这个槽函数里面添加如下代码:
if(ui->username->text() == "admin" && ui->password->text() == "123456"){
this->close();
hello *h=new hello;
h->show();
}else{
QMessageBox::warning(this,tr("登录失败"),tr("用户名或密码输入错误!"),QMessageBox::Ok);
ui->username->clear();
ui->password->clear();
ui->username->setFocus();
}
一定要在login.cpp文件的开头引入hello.h头文件,下面是我的login.cpp文件代码内容:
//login.cpp
#include "login.h"
#include "ui_login.h"
#include
#include "hello.h"
login::login(QWidget *parent) :
QDialog(parent),
ui(new Ui::login)
{
ui->setupUi(this);
//设置背景图片
QPalette pal = this->palette();
pal.setBrush(QPalette::Background,QBrush(QPixmap(":/new/prefix1/14.jpg").scaled(this->size())));
setPalette(pal);
//设置无边框
// setWindowFlag(Qt::FramelessWindowHint);
//设置窗口标题
this->setWindowTitle("登录");
//设置密文登录
ui->password->setEchoMode(QLineEdit::Password);
}
login::~login()
{
delete ui;
}
void login::on_pushButton_clicked()
{
if(ui->username->text() == "admin" && ui->password->text() == "123456"){
this->close();
hello *h=new hello;
h->show();
}else{
QMessageBox::warning(this,tr("登录失败"),tr("用户名或密码输入错误!"),QMessageBox::Ok);
ui->username->clear();
ui->password->clear();
ui->username->setFocus();
}
}
最后要做的就是在main.cpp里面添加以下代码,使我们的登录页面第一个打开,以下是我的main.cpp文件内容
//main.cpp
#include "login.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
login w;
w.show();
return a.exec();
}
添加完后大功告成!点击运行一下吧
其实到这里应该就可以构建并运行了,下面我说一下其他几个文件
hello.cpp、hello.h和login.h里面不需要做任何改动,其中login.h完全是自动生成的。
|