当前位置: 首页 > article >正文

Day 72

作业

#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();
 
        }
    }
}
 


http://www.kler.cn/a/309873.html

相关文章:

  • 智能零售柜商品识别
  • 招聘app开发,人才招聘、求职首要方式
  • IPv4与IPv6的优缺点
  • 分布式和并发模型的比较和讨论记录
  • 用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(三)
  • 【Vue】Vue3.0(十七)Vue 3.0中Pinia的深度使用指南(基于setup语法糖)
  • 在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container
  • 【大数据】探索怎么从一段话中解析关键信息(寄件人相关信息)
  • 体感魂斗罗(一)
  • vue 数组转字符串以逗号分隔
  • 9.18 C++对C的扩充
  • AI逻辑推理入门
  • 钢材表面缺陷数据集以coco格式做好了数据集的划分,1200张训练集,600张验证集,对应的json文件也在里面
  • 腾讯 IEG 游戏前沿技术 二面复盘
  • python如何实现队列
  • 18063 圈中的游戏
  • 身份证阅读器API模式 VUE Dorado7
  • 计数服务怎么设计?
  • 【AI学习】AI绘画发展简史
  • nginx进阶篇(二)
  • C++ 常用设计模式
  • 【.net core】线程的创建和方法调用
  • LineageOS源码下载和编译(Xiaomi Mi 6X,wayne)
  • linux Command
  • HT3163 免电感滤波25W AB/D类音频功放
  • 图数据库 neo4j 安装