作业:
1> 找出槽函数调用两次的原因
2> 完善登录界面,登录按钮对应的槽函数中,判断所填写账户密码是否正确,默认账户“admin”,密码“123456”
如果匹配成功,则输出登录成功并关闭界面,如果登录失败,输出登录失败,并清空密码框中的内容
点击取消按钮,则关闭界面
头文件work.h
#ifndef WORK_H
#define WORK_H
#include <QWidget>
#include<QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class work; }
QT_END_NAMESPACE
class work : public QWidget
{
Q_OBJECT
signals:
//声明自定义的信号函数
//void singal1(形参表);
//只有声明没有定义
public slots:
//声明槽函数
//void slot1(形参表);
//可以在类外对槽函数进行定义
public:
work(QWidget *parent = nullptr);
~work();
private slots:
void on_pbt1_clicked(); //系统自动定义的
private:
Ui::work *ui;
};
#endif // WORK_H
work.cpp
#include "work.h"
#include "ui_work.h"
work::work(QWidget *parent)
: QWidget(parent)
, ui(new Ui::work)
{
ui->setupUi(this);
//设置窗口icon
this->setWindowIcon(QIcon("C:/Users/csy2021/Pictures/c基础/001.jpg"));
//设置固定尺寸
this->setFixedSize(620,600);
//设置窗口标题
this->setWindowTitle("什么网站");
//设置logo
ui->logo->resize(400,131);
ui->logo->setScaledContents(true);
ui->logo->setPixmap(QPixmap("C:/Users/csy2021/Pictures/c基础/logo.png"));
//设置用户名和密码的icon
ui->label1->resize(40,40);
ui->label1->setScaledContents(true);
ui->label1->setPixmap(QPixmap("C:/Users/csy2021/Pictures/c基础/userName.jpg"));
ui->label2->resize(40,40);
ui->label2->setScaledContents(true);
ui->label2->setPixmap(QPixmap("C:/Users/csy2021/Pictures/c基础/passwd.jpg"));
//设置密码的行编译器为密文模式
ui->lineEdit_2->setEchoMode(QLineEdit::Password);
//登录退出icon
ui->pbt1->setIcon(QIcon("C:/Users/csy2021/Pictures/c基础/login.png"));
ui->pbt2->setIcon(QIcon("C:/Users/csy2021/Pictures/c基础/cancel.png"));
}
work::~work()
{
delete ui;
}
void work::on_pbt1_clicked()
{
QString label1 = ui->lineEdit->text();
QString label2 = ui->lineEdit_2->text();
if(QString("admin")==label1)
{
qDebug() << "用户名正确";
if(QString("123456")==label2)
{
qDebug() << "登入成功";
QWidget::close(); //关闭界面
}
else
{
qDebug() << "密码错误";
ui->lineEdit_2->clear(); //清空密码
}
}
else
qDebug() << "用户名错误";
}
ui设计
执行结果