2月7日QT
作业: 手动将登录项目实现,不要使用拖拽编程
并且,当点击登录按钮时,后台会判断账号和密码是否相等,如果相等给出登录成功的提示,并且关闭当前界面,发射一个跳转信号,如果登录失败,则给出登录失败的提示,并清空密码框
当点击取消按钮时,直接关闭当前登录框
头文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QPushButton>
#include<QLabel>
#include<QLineEdit>
#include<QDebug>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
QLabel *lab1;
QLabel *lab2;
QLabel *lab3;
QLineEdit *edit1;
QLineEdit *edit2;
QPushButton *btn1;
QPushButton *btn2;
};
#endif // WIDGET_H
源文件:
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//设置整个界面
resize(400,500);
setWindowTitle("KK快聊");
//给lable1实例化空间并设置(logo)
lab1= new QLabel("logo",this);
lab1->resize(400,160);
lab1->setStyleSheet("background-color:pink;");
//给lable2实例化空间并设置(账号)
lab2= new QLabel("账号",this);
lab2->resize(50,40);
lab2->move(40,200);
//给lable3实例化空间并设置(密码)
lab3= new QLabel("密码",this);
lab3->resize(lab2->size());
lab3->move(lab2->x(), lab2->y()+lab2->height()+10);
//给edit1实例化空间并设置(输入账号)
edit1=new QLineEdit(this);
edit1->resize(200, 40);
edit1->move(100,200);
edit1->setAlignment(Qt::AlignCenter); //设置对齐方式
edit1->setPlaceholderText("请输入账号"); //设置占位文本
//给edit2实例化空间并设置(输入密码)
edit2=new QLineEdit(this);
edit2->resize(edit1->size());
edit2->move(edit1->x(), edit1->y()+edit1->height()+10);
edit2->setAlignment(Qt::AlignCenter); //设置对齐方式
edit2->setPlaceholderText("请输入密码"); //设置占位文本
edit2->setEchoMode(QLineEdit::Password); //设置回显模式
//给btn1实例化空间并设置(登录)
btn1 = new QPushButton("登录", this);
btn1->resize(50,30);
btn1->move(140,400);
//给btn2实例化空间并设置(取消)
btn2 = new QPushButton("取消", this);
btn2->resize(btn1->size());
btn2->move(btn1->x()+btn1->width()+10, btn1->y());
QObject::connect(btn1, &QPushButton::clicked, [this]()
{
if(1)
{
close();
}
});
QObject::connect(btn2, &QPushButton::clicked, [this]()
{
close();
});
}
Widget::~Widget()
{
}