要求:
1、给窗体改变名称并设置窗口图标、尺寸固定
2、中间放log图
3、用户名和密码使用图片完成
4、账户用明文模式,密码用密文模式
5、点击登录后,将界面上的用户名和“admin”比较,密码和“123456”比较,如果匹配成功,则输出登录成功,如果匹配失败,则输出“账户密码不匹配”,并清空密码框(clear)
6、点击取消后,关闭整个界面
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QIcon>
#include <QDebug>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QApplication> //包含应用程序的头文件
#include<iostream>
using namespace std;
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
signals:
//声明信号函数的权限
void mysignal(); //此时定义了一个无参无返的信号函数
public slots:
//槽函数声明的权限
void myslot(); //自定义了一个无参无返的槽函数
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
源文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置固定尺寸
this->setFixedSize(420,300);
//设置窗口标题
this->setWindowTitle("LQS");
//设置窗口图标
this->setWindowIcon(QIcon("E:\\Learning\\Qt_work\\qt_01\\TIM.png"));
//定义一个标签,实例化对象,调用无参构造【背景图片】
QLabel *lab0 = new QLabel;
lab0->setParent(this); //设置父组件
lab0->resize(420, 100);
// qDebug()<<lab0->text(); //获取组件的文本信息
lab0->setPixmap(QPixmap("E:\\Learning\\Qt_work\\qt_01\\panda.png")); //设置填充内容为图片
lab0->setScaledContents(true); //设置填充格式,组件内容自适应
//定义一个标签,实例化对象,调用无参构造【用户名】
QLabel *lab1 = new QLabel;
lab1->setParent(this); //设置父组件
lab1->move(100,120);
lab1->resize(20, 20);
lab1->setText("用户名:");
// qDebug()<<lab1->text(); //获取组件的文本信息
lab1->setPixmap(QPixmap("E:\\Learning\\Qt_work\\qt_01\\QQ.png")); //设置填充内容为图片
lab1->setScaledContents(true); //设置填充格式,组件内容自适应
//定义一个行编辑器,实例化对象时,使用无参构造
// QLineEdit *edt1 = new QLineEdit;
// edt1->setParent(this); //设置父组件
// edt1->move(130,120); //移动
// edt1->resize(100,20); //重新设置大小
//定义一个标签,实例化对象,给定文本内容和父组件【密码】
QLabel *lab2 = new QLabel("密码:", this);
lab2->move(100,150);
lab2->resize(20, 20);
// qDebug()<<lab2->text(); //获取组件的文本信息
lab2->setPixmap(QPixmap("E:\\Learning\\Qt_work\\qt_01\\TIM.png")); //设置填充内容为图片
//定义一个行编辑器,实例化对象时,使用有参构造
// QLineEdit *edt2 = new QLineEdit(this);
// edt2->move(130,150);
// edt2->resize(100,20); //重新设置大小
// edt2->setEchoMode(QLineEdit::Password); //设置回显模式
// //登录和取消按钮
// //定义一个按钮,实例化对象时,顺便指定组件以及文本内容和图标
// QPushButton *btn1 = new QPushButton("登录", this);
// btn1->move(120,200); //移动组件位置
// btn1->resize(50, 30); //重新设置按钮的尺寸
// btn1->setIcon(QIcon("E:\\Learning\\Qt_work\\qt_01\\QQ.png")); //设置图标
btn1->setStyleSheet("background-color:red"); //设置按钮颜色
// QPushButton *btn2 = new QPushButton("取消", this);
// btn2->move(180,200); //移动组件位置
// btn2->resize(btn1->size()); //使用btn1的尺寸,给btn3成功新设置尺寸
// btn2->setIcon(QIcon("E:\\Learning\\Qt_work\\qt_01\\QQ.png")); //设置图标
connect(ui->btn1, &QPushButton::clicked, this, &Widget::myslot);
//读取用户名和密码出的文本信息
// qDebug()<<edt1->text(); //获取组件的文本信息
// qDebug()<<edt2->text(); //获取组件的文本信息
}
Widget::~Widget()
{
delete ui;
}
void Widget::myslot()
{
if((ui->lab1->text() == "admin") && (ui->lab2->text() == "123456"))
{
// cout<<"登陆成功"<<endl;
cout<<"good"<<endl;
}
else
{
// cout<<"账户和密码不匹配"<<endl;
cout<<"no good"<<endl;
ui->lab1->clear();
ui->lab2->clear();
}
}
主函数
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}