完善登录界面,登录按钮对应的槽函数中,判断所填写账户密码是否正确,默认账户“admin”,密码“123456”
如果匹配成功,则输出登录成功并关闭界面,如果登录失败,输出登录失败,并清空密码框中的内容点击取消按钮,则关闭界面
widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QDebug>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void btn_cancel_clicked();
void btn_login_clicked(); //自定义的槽函数
private:
Ui::Widget *ui;
QLabel *lab_logo;
QLabel *lab_1;
QLabel *lab_2;
QLineEdit *edit_user;
QLineEdit *edit_password;
QPushButton *btn_login;
QPushButton *btn_cancel;
};
#endif // WIDGET_H
main.cpp:
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.cpp:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置固定尺寸
this->setFixedSize(479,458);
//设置窗口icon
this->setWindowIcon(QIcon("E:/icon/icon.png"));
//设置窗口标题
this->setWindowTitle("聊天室");
//设置logo
lab_logo = new QLabel(this); //定义一个标签,构造时顺便指定父组件
lab_logo->move(0,50);
lab_logo->resize(480,120);
lab_logo->setPixmap(QPixmap("E:/icon/logo.png"));
//设置用户名和密码的icon
lab_1 = new QLabel(this);
lab_1->move(117,237);
lab_1->resize(40,40);
lab_1->setScaledContents(true); //设置内容自适应
lab_1->setPixmap(QPixmap("E:/icon/userName.jpg"));
lab_2 = new QLabel(this);
lab_2->move(117,317);
lab_2->resize(40,40);
lab_2->setScaledContents(true); //设置内容自适应
lab_2->setPixmap(QPixmap("E:/icon/passwd.jpg"));
//设置用户名
edit_user = new QLineEdit(this);
edit_user->move(170,240);
edit_user->resize(170,30);
//设置密码的行编辑器为密文模式
edit_password = new QLineEdit(this);
edit_password->move(170,320);
edit_password->resize(170,30);
edit_password->setEchoMode(QLineEdit::Password);
//设置两个按钮的icon
btn_login = new QPushButton("登入",this);
btn_login->move(130,390);
btn_login->resize(89,31);
btn_login->setIcon(QIcon("E:/icon/login.png"));
btn_cancel = new QPushButton("取消",this);
btn_cancel->move(260,390);
btn_cancel->resize(89,31);
btn_cancel->setIcon(QIcon("E:/icon/cancel.png"));
//使用qt5版本的连接
connect(btn_cancel, &QPushButton::clicked, this, &Widget::btn_cancel_clicked);
connect(btn_login, &QPushButton::clicked, this, &Widget::btn_login_clicked);
}
Widget::~Widget()
{
delete ui;
}
void Widget::btn_cancel_clicked()
{
QWidget::close(); //关闭界面
}
void Widget::btn_login_clicked()
{
QString user = edit_user->text();
QString passward = edit_password->text();
//qDebug() << user;
//qDebug() << passward;
if(QString("admin")==user)
{
qDebug() << "用户名正确";
if(QString("123456")==passward)
{
qDebug() << "登入成功";
QWidget::close(); //关闭界面
}
else
{
qDebug() << "密码错误";
edit_password->clear(); //清空密码
}
}
else
qDebug() << "用户名错误";
}
测试结果如下: