代码练习
完成一个使用qss的登陆窗口界面。
使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数
将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为”admin”,密码是否为”123456″,如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空
提醒窗口
头文件
#ifndef INFOR_H
#define INFOR_H
#include
#include
namespace Ui {
class infor;
}
class infor : public QWidget
{
Q_OBJECT
public:
explicit infor(QWidget *parent = nullptr);
~infor();
public slots:
void Loged_rec1();
public slots:
void Loged_rec2();
public slots:
void push_close();
private:
Ui::infor *ui;
};
#endif // INFOR_H
源文件
#include "infor.h"
#include "ui_infor.h"
infor::infor(QWidget *parent) :
QWidget(parent),
ui(new Ui::infor)
{
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
connect(ui->pushButton,&QPushButton::clicked,this,&infor::push_close);
}
infor::~infor()
{
delete ui;
}
void infor::Loged_rec1()
{
qDebug() label_2->setText("登陆成功!");
this->show();
}
void infor::Loged_rec2()
{
qDebug() label_2->setText("账号或密码错误!");
this->show();
}
void infor::push_close()
{
qDebug() close();
}
登录界面
头文件
#ifndef LOGING_H
#define LOGING_H
#include
#include
namespace Ui {
class Loging;
}
class Loging : public QWidget
{
Q_OBJECT
public:
explicit Loging(QWidget *parent = nullptr);
~Loging();
signals:
void Loged1();
si服务器托管gnals:
void Loged2();
public slots:
void LogBtn_in();
public slots:
void Log_rec();
private:
Ui::Loging *ui;
};
#endif // LOGING_H
源文件
#include "loging.h"
#include "ui_loging.h"
Loging::Loging(QWidget *parent) :
QWidget(parent),
ui(new Ui::Loging)
{
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
ui->lineEdit->setPlaceholderText("支持QQ号/邮箱/手机号登录");
ui->lineEdit_2->setPlaceholderText("请输入密码");
ui->lineEdit_2->setEchoMode(QLineEdit::Password);
connect(ui->pushButton,&QPushButton::clicked,this,&Loging::LogBtn_in);
}
Loging::~Loging()
{
delete ui;
}
void Loging::LogBtn_in()
{
qDebug() lineEdit->text())=="admin")
{
if(QString(ui->lineEdit_2->text())=="123456")
{
this->close();
emit Loged1();
}
else
{
emit Loged2();
ui->lineEdit_2->clear();//清空密码框内容
}
}
else
{
emit Loged2();
ui->lineEdit_2->clear();//清空密码框内容
}
}
void Loging::Log_rec()
{
this->show();
}
初始界面
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
signals:
void Log_in();
private slots:
void on_pushButton_2_clicked();
void PushbuttonClicked();
private:
Ui::Widget *ui;
QTextToSpeech *speaker;
服务器托管};
#endif // WIDGET_H
源文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
,speaker(new QTextToSpeech(this))
{
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(on_pushButton_2_clicked()));
connect(ui->pushButton,&QPushButton::clicked,this,&Widget::PushbuttonClicked);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_2_clicked()
{
this->close();
}
void Widget::PushbuttonClicked()
{
speaker->say(ui->pushButton->text());
this->close();
emit Log_in();
}
主函数
#include "widget.h"
#include "loging.h"
#include "infor.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
Loging l;
w.show();
infor t;
QObject::connect(&w,&Widget::Log_in,&l,&Loging::Log_rec);
QObject::connect(&l,&Loging::Loged1,&t,&infor::Loged_rec1);
QObject::connect(&l,&Loging::Loged2,&t,&infor::Loged_rec2);
return a.exec();
}
效果演示
登录第二版
思维导图
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的日常场景下的人脸检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)
摘要:开发用于日常环境中的人脸识别系统对增强安全监测和提供定制化服务极为关键。本篇文章详细描述了运用深度学习技术开发人脸识别系统的全过程,并附上了完整的代码。该系统搭建在强大的YOLOv8算法之上,并通过与YOLOv7、YOLOv6、YOLOv5的性能比较,展…