实现qq登录界面的窗口
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QDebug>
#include <QMessageBox>
#include <QPushButton>//按钮
#include <QLabel>//标签
#include <QLineEdit>//文本框
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
QLabel *lable_icon;//图标
QLabel *lable_QQ;//QQ文字
QLabel *lable_up;//上半部分
QLabel *lable_id;//qq id图标
QLabel *lable_pass;//qq 密码图标
QLineEdit *line_id;//id文本框
QLineEdit *line_pass;//密码文本框
QPushButton *button_login;//登录按钮
QPushButton *button_close;//右上角关闭按钮
private slots:
void slot_login();
void slot_close();
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//主窗口
this->setFixedSize(430,330);//设置主窗口的固定尺寸
this->setWindowFlags(Qt::FramelessWindowHint);
this->setStyleSheet("background-color:white");
//上面分区
lable_up=new QLabel(this);
lable_up->resize(this->width(),130);
lable_up->setStyleSheet("background-color:skyblue");//设置背景色为天蓝色
//企鹅图标
lable_icon=new QLabel(lable_up);
lable_icon->setScaledContents(true);//设置内容自适应
lable_icon->setPixmap(QPixmap(":./icon/icon.png"));
lable_icon->resize(30,30);
lable_icon->move(8,8);
//QQ文字
lable_QQ=new QLabel(lable_up);
lable_QQ->setText("QQ");
QFont ft;
ft.setPointSize(14);
lable_QQ->setStyleSheet("color:white");
lable_QQ->setFont(ft);
lable_QQ->resize(30,40);
lable_QQ->move(38,0);
lable_QQ->setAlignment(Qt::AlignVCenter);
//QQid 图标
lable_id =new QLabel(this);
lable_id->setScaledContents(true);
lable_id->setPixmap(QPixmap(":./icon/QQ.png"));
lable_id->resize(20,20);
lable_id->move(100,170);
//QQ 密码图标
lable_pass=new QLabel(this);
lable_pass->setScaledContents(true);
lable_pass->setPixmap(QPixmap(":./icon/sock.png"));
lable_pass->resize(20,20);
lable_pass->move(100,200);
//qq id文本框
line_id=new QLineEdit(this);
line_id->resize(150,20);
line_id->move(lable_id->x()+lable_id->width()+10,lable_id->y());
//qq 密码文本框
line_pass=new QLineEdit(this);
line_pass->resize(150,20);
line_pass->move(lable_pass->x()+lable_pass->width()+10,lable_pass->y());
line_pass->setEchoMode(QLineEdit::Password);
//qq 登录按钮
button_login=new QPushButton(this);
button_login->resize(200,40);
button_login->move(lable_pass->x(),lable_pass->y()+50);
button_login->setText("登录");
button_login->setStyleSheet("background-color:skyblue;color:white");
connect(button_login,&QPushButton::clicked,this,&Widget::slot_login);
//qq 右上角关闭按钮
button_close=new QPushButton(this);
button_close->resize(20,20);
button_close->move(this->width()-20,0);
button_close->setIcon(QIcon(":./icon/x.png"));
connect(this->button_close,&QPushButton::clicked,this,&Widget::slot_close);//关闭窗口
}
Widget::~Widget()
{
delete ui;
}
void Widget::slot_login()
{
QString id=lable_id->text();
QString pass=lable_pass->text();
if(id!="admin" && pass!="123456")
{
QMessageBox::information(NULL, "错误", "密码输入错误,请重新输入");
//qDebug()<<"密码输入错误,请重新输入";
this->line_pass->clear();
}
}
void Widget::slot_close()
{
this->close();
}