作业
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLineEdit>
#include <QLabel>
#include <QIcon>
#include <QPushButton>
#include <QMovie>
#include <QPainter>
#include <QWidget>
#include <QMessageBox>
#include <QDebug>
#include <QTextToSpeech> //文本转语音类
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
signals: //表示该权限下的,都是信号函数
void my_signal(); //自定义了一个信号, 只要声明 不要实现
public slots: //表示该权限下的,都是槽函数
void my_slot(); //自定义了一个槽函数, 既要声明 也要实现
private slots:
void on_pnt1_clicked();
void on_pnt1_2_clicked();
protected:
void paintEvent(QPaintEvent *event) override;
private:
Ui::MainWindow *ui;
// QPushButton *ptn2 ;
// QPushButton *ptn1;
QLineEdit *le1;
QLineEdit *le2;
QTextToSpeech *speecher;
signals:
void my_jump();
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
// ,ptn2(new QPushButton("登录",this))
// , ptn1(new QPushButton("退出",this))
, speecher(new QTextToSpeech(this))
{
ui->setupUi(this);
//设置窗口大小
this->resize(1025,533);
//固定窗口大小
this->setFixedSize(1025,533);
//设置窗口背景色,设置弧度
//this->setStyleSheet("background-image:url(D:\\360\\homwork\\beijing.png);");
//this->setStyleSheet("background-color:rgb(74,186,171)");
//设置纯净窗口
this->setWindowFlag(Qt::FramelessWindowHint);
// //提示框4
// QLabel *labe4 = new QLabel(this);
// //设置标签位置
// //labe4->move(52);
// //设置标签大小
// labe4->resize(1025,533);
// //设置标签填充图片
// labe4->setPixmap(QPixmap("D:\\360\\homwork\\beijing.png"));
// labe4->setScaledContents(true);
//提示标签1
QLabel *labe1 = new QLabel("密码登录",this);
//设置位置
labe1->move(500,70);
//设置长宽
labe1->resize(120,50);
//设置字体大小
//labe1->setStyleSheet("background-color:rgb(76,162,229);");
// 创建 QFont 实例,设置字体大小
QFont font = labe1->font();
font.setPointSize(16); // 设置字体大小为 16 点
// 应用字体设置到 QLabel
labe1->setFont(font);
//提示标签2
QLabel *labe2 = new QLabel("短信登录",this);
//设置位置
labe2->move(710,70);
//设置长宽
labe2->resize(120,50);
//设置字体大小
//labe2->setStyleSheet("background-color:rgb(76,162,229);");
// 创建 QFont 实例,设置字体大小
QFont font1 = labe1->font();
font1.setPointSize(16); // 设置字体大小为 16 点
// 应用字体设置到 QLabel
labe2->setFont(font1);
le1 =new QLineEdit(this);
//输入框1
//移动位置,相较于左上原点0,0
le1->move(460,125);
//设置输入框大小
le1->resize(430,60);
//设置默认显示
le1->setPlaceholderText("请输入账号");
//设置弧度,设置背景色
le1->setStyleSheet("background-color:rgb(127,214,245);border-radius:5px");
//输入框2
le2 = new QLineEdit(this);
//移动位置,相较于左上原点0,0
le2->move(460,190);
//设置输入框大小
le2->resize(430,60);
//设置默认显示
le2->setPlaceholderText("请输入密码");
//设置弧度,设置背景色
le2->setStyleSheet("background-color:rgb(127,214,245);border-radius:5px");
//设置密码显示方式
le2->setEchoMode(QLineEdit::Password);
//标签1
QLabel *lab1 = new QLabel(this);
//设置标签图片
lab1->setPixmap(QPixmap("C:/Users/86173/Documents/Tencent Files/1846238059/FileRecv/pictrue/qq.png"));
//设置标签位置
lab1->move(410,135);
//设置标签大小
lab1->resize(50,50);
//图片适应标签大小
lab1->setScaledContents(true);
QLabel *lab2 = new QLabel(this);
//设置标签图片
lab2->setPixmap(QPixmap("C:\\Users\\86173\\Desktop\\delisha.png"));
//设置标签位置
lab2->move(410,195);
//设置标签大小
lab2->resize(50,50);
//图片适应标签大小
lab2->setScaledContents(true);
//按钮1
//QPushButton *ptn1 = new QPushButton("退出",this);
//设置坐标
// this->ptn1->move(460,290);
// //设置长宽
// this->ptn1->resize(200,50);
// //设置背景颜色,弧度,字体颜色
// this->ptn1->setStyleSheet("background-color:rgb(127,214,245);color:white;border-radius:5px");
// connect(ptn1, &QPushButton::clicked, this, &MainWindow::my_slot);
// //按钮2
// setEnabled(true);
// connect(ptn2, SIGNAL(clicked()), this, SLOT(my_slot()));
// //设置坐标
// ptn2->move(690,290);
// //设置长宽
// ptn2->resize(200,50);
// //设置背景颜色,弧度,字体颜色
// ptn2->setStyleSheet("background-color:rgb(127,214,245);color:white;border-radius:5px");
//提示框3
QLabel *labe3 = new QLabel("其他方式登录",this);
//设置标签位置
labe3->move(600,350);
//设置标签大小
labe3->resize(120,50);
// //提示框4
// QLabel *labe5 = new QLabel(this);
// //设置标签位置
// labe5->move(670,410);
// //设置标签大小
// labe5->resize(60,60);
// //设置标签填充图片
// labe5->setPixmap(QPixmap("E:\\QT\\Qt\\pictrue\\weibo.png"));
// labe5->setScaledContents(true);
// //提示框4
// QLabel *labe6 = new QLabel(this);
// //设置标签位置
// labe6->move(820,410);
// //设置标签大小
// labe6->resize(60,60);
// //设置标签填充图片
// labe6->setPixmap(QPixmap("E:\\QT\\Qt\\pictrue\\qq_1.png"));
// labe6->setScaledContents(true);
//动态图
QLabel *labe7 = new QLabel(this);
labe7->move(50,100);
labe7->resize(350,300);
QMovie *mv = new QMovie("D:\\360\\homwork\\maomaoyao.gif");
labe7->setMovie(mv);
mv->start();
labe7->setScaledContents(true);
}
//void MyWidget::paintEvent(QPaintEvent *event) {
// QPainter painter(this);
// //QPixmap background("E:/QT/Qt/pictrue/Milk.png");
// //painter.drawPixmap(0, 0, width(), height(), background);
// QWidget::paintEvent(event);
//}
void MainWindow::my_slot()
{
this->close();
}
void MainWindow::paintEvent(QPaintEvent *event) {
QPainter painter(this);
QPixmap background("D:\\360\\homwork\\beijing.png");
painter.drawPixmap(0, 0, width(), height(), background);
QWidget::paintEvent(event);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pnt1_clicked()
{
QMessageBox msg(QMessageBox::Question, //图标
"", //标题
"您是否确定要退出登录?", //文本
QMessageBox::Yes| QMessageBox::No, //按钮
this //指定父组件
);
int ret =msg.exec();
if(ret==QMessageBox::Yes)
{
this->close();
}
if(ret==QMessageBox::No)
{
QMessageBox::Close;
}
}
void MainWindow::on_pnt1_2_clicked()
{
if(this->le1->text()=="admin"&&this->le2->text()=="123456")
//提示框3
{
// QLabel *labe9 = new QLabel("登录成功");
// speecher->say(labe9->text());
// //设置标签位置
// labe9->move(400,350);
// //设置标签大小
// labe9->resize(200,200);
// labe9->show();
// labe9->setStyleSheet("background-color:white;color:dark;border-radius:5px");
// labe9->setAlignment(Qt::AlignCenter);
//弹出一个警告对话框 QMessageBox 基于属性版本
QMessageBox msg(QMessageBox::Information, //图标
"", //标题
"”登录成功", //文本
QMessageBox::Yes, //按钮
this //指定父组件
);
int ret =msg.exec();
if(ret==QMessageBox::Yes)
{
this->close();
emit my_jump();
}
}else
{
// QLabel *labe9 = new QLabel("登录失败,请重新输入");
// speecher->say(labe9->text());
// //设置标签位置
// labe9->move(300,100);
// //设置标签大小
// labe9->resize(400,300);
// labe9->setStyleSheet("background-color:white;color:dark;border-radius:5px");
// QFont font = labe9->font();
// font.setPointSize(100);
// labe9->setAlignment(Qt::AlignCenter);
// labe9->show();
// this->le1->clear();
// this->le2->clear();
QMessageBox msg(QMessageBox::Information, //图标
"", //标题
"登录失败,是否重新输入", //文本
QMessageBox::Yes| QMessageBox::No, //按钮
this //指定父组件
);
int ret =msg.exec();
if(ret==QMessageBox::Yes)
{
this->le1->clear();
this->le2->clear();
QMessageBox::Close;
}
if(ret==QMessageBox::No)
{
this->close();
}
}
}