1、使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数
将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空
2、完成一个使用qss的登陆窗口界面
程序代码:
widget.h:
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMovie>//动态图类
#include <QMainWindow>
#include <QPushButton>//按钮类
#include <QMessageBox> //弹窗类
#include <QString> //字符串类
#include <QIcon>//图标类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals: //该权限下都是信号函数public slots://该权限下都是槽函数void my_close();//实现取消按钮,关闭窗口void LogBtn_slot();//实现登录功能private:Ui::Widget *ui;QMessageBox *box;//实例化一个弹窗box
};
#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->setWindowFlag(Qt::FramelessWindowHint);//去掉空白this->setAttribute(Qt::WA_TranslucentBackground);this->setWindowTitle("天马系统");//窗口名this->setWindowIcon(QIcon(":/my_pictrue/kk.jpg"));ui->AboveName->setPixmap(QPixmap(":/my_pictrue/zz.jpg"));//账号前图标ui->AboveName->setScaledContents(true);//自适应ui->AbovePasswd->setPixmap(QPixmap(":/my_pictrue/yy.jpg"));//密码前图标ui->AbovePasswd->setScaledContents(true);//自适应QMovie *mv = new QMovie(":/my_pictrue/bb.gif");//Log动态图标mv->start();//动图ui->Loglab->setMovie(mv);ui->Loglab->setScaledContents(true);//自适应ui->NameEdit->setPlaceholderText("QQ/手机");ui->PasswdEdit->setPlaceholderText("密码");ui->PasswdEdit->setEchoMode(QLineEdit::Password);//一:设置一个取消按钮//手动连接 基于qt4版本 连接 自定义槽函数(调用关闭函数)connect(ui->closeBtn,SIGNAL(clicked()),this,SLOT(my_close()));//二:登录按钮 基于QT5连接 自定义槽函数//判断输入账号是否为"admin",密码是否为"123456"//匹配成功,输出"登录成功",关闭界面//匹配失败,输出登录失败,将密码框内容清空//连接connect(ui->LogBtn,&QPushButton::clicked,this,&Widget::LogBtn_slot);}Widget::~Widget()
{delete ui;
}
//按钮Btn1对应槽函数实现
void Widget::my_close()//基于QT4 自定义槽函数实现
{this->close();//调用关闭函数
}//基于QT5 自定义槽函数的实现
void Widget::LogBtn_slot()
{box = new QMessageBox;//申请空间box->setWindowTitle("提示");//设置提示框名box->resize(20,20);//设置大小box->setFixedSize(20,20);//固定大小box->setWindowIcon(QIcon(":/my_pictrue/kk.jpg"));if(QString(ui->NameEdit->text())=="admin"){if(QString(ui->PasswdEdit->text())=="123456"){box->setText("登录成功");//设置提示信息box->show();close();}else if(QString(ui->PasswdEdit->text())==0){box->setText("请输入密码");box->show();}else{box->setText("密码错误");ui->PasswdEdit->clear();//清空密码框内容box->show();}}else{box->setText("登录失败");ui->PasswdEdit->clear();//清空密码框内容box->show();}
}
运行结果:
qss:
*{background-color: rgba(255, 255, 255, 100);
}
QFrame#frame1{border-image: url(:/my_pictrue/aa.png);/*图片*/background-color: rgba(255, 255, 255, 100);/*背景颜色*/
}
#frame2{border-radius:30px;/*设置倒角*/background-color: rgba(91, 91, 91, 100);
}
QPushButton#NameBtn{background:transparent;border-radius:10px;font: 9pt "宋体";/*字体大小、形状*/color: rgba(255, 255, 255, 120);/*字体颜色*/
}
#PasswdBtn{background:transparent;border-radius:10px;font: 9pt "宋体";color: rgba(255, 255, 255, 120);
}
#LogBtn{border-radius:10px;font: 14pt "宋体";background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(46, 121, 164, 255), stop:1 rgba(255, 255, 255, 255));/*渐变色*/color: rgba(0, 0, 0, 120);
}
#closeBtn{background:transparent;/*背景透明*/border-radius:10px;font: 14pt "宋体";color: rgb(170, 0, 0);
}
#LogBtn:pressed{/*点击按钮*/background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(97, 71, 153, 255), stop:1 rgba(255, 255, 255, 255));padding-top:5px;/*点击时字体偏移*/padding-left:5px;
}
QLabel#AboveName{background:transparent;border-radius:5px;background-color: rgba(255, 255, 255, 120);
}
#AbovePasswd{background:transparent;border-radius:5px;background-color: rgba(255, 255, 255, 120);
}
#Loglab{background:transparent;border-radius:5px;
}
QLineEdit{background:transparent;border:none;/*无边框*/border-bottom:1px solid rgb(100, 100, 100);
}
思维导图: