Day 72

news2025/1/12 3:41:11

作业

#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.coloradmin.cn/o/2131261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最好用的 Redis 可视化工具,不愧是官方出品,功能确实强大(带私活源码)

对于开发人员来说&#xff0c;很多人都用过Redis&#xff0c;它对于数据 key-value 结构的存储系统性能表现很优秀。 当然了&#xff0c;在很多的项目都用到。 当存储数据量比较大时&#xff0c;我们想要直观的看 Redis 里面的数据&#xff0c;除了代码&#xff0c;当然就要采…

基于Spark 的零售交易数据挖掘分析与可视化

基于Spark 的零售交易数据挖掘分析与可视化 本文将带你通过 PySpark 进行电商数据的分析处理&#xff0c;并将结果保存为 JSON 文件&#xff0c;供前端展示。我们将从数据的读取、处理、分析到结果保存和网页展示&#xff0c;覆盖完整的数据流。项目结构如下&#xff1a; 1、…

【HarmonyOS】鸿蒙头像上传-(编辑个人信息页- 头像上传)+实时数据更新

#效果图 #思路 ##步骤&#xff1a; ###一、利用picker api选择1张图片 实例化选择器参数(使用new PhotoSelectOptions())实例化图片选择器 (使用newPhotoViewPicker() )调用图片选择器的select方法传入选择器参数完成图片选取获得结果 利用picker api选择1张图片 async sele…

(一) 遥感中的大气窗口和 OBIA

摘要: 什么是地球的大气窗口? 不知您是否想过,光是如何穿过大气层到达地球的呢?这是源于大气中的臭氧、水、二氧化碳和其他分子,我们可以免受有害辐射的伤害。因此,我们只能看到电磁波谱的特定部分,这种现象被称为地球的“大气窗口”。 在遥感领域,传感器被建造来拾取那…

无人机巡检:突破传统局限,引领智能监测新时代

无人机行业正在经历快速发展&#xff0c;技术不断创新&#xff0c;应用领域不断拓展。从最初的航拍娱乐到如今的工业巡检、农业植保、物流配送、灾害救援等&#xff0c;无人机正展现出巨大的实用价值。如今&#xff0c;行业级无人机应用不断扩展&#xff0c;在测绘与泛测绘领域…

中控室控制台处在自动状态什么意思

在现代工业和智能控制系统中&#xff0c;中控室控制台作为集中控制和管理各种设备、系统和流程的核心&#xff0c;扮演着至关重要的角色。当提到中控室控制台处在自动状态时&#xff0c;这通常意味着控制台已经切换到一种高度智能化的工作模式&#xff0c;能够自动调整和管理各…

【Linux】数据链路层

一、数据链路层引入 1.1 数据链路层的功能 在网络层中&#xff0c;我们使用IP协议进行通信&#xff0c;需要进行跨网络转发到目标主机&#xff0c;本质上就是一个报文经历了无数个子网&#xff0c;而数据链路层就是解决在一个子网中如何传输报文的问题。 数据链路层的功能是&a…

通义灵码用户说:“人工编写测试用例需要数十分钟,通义灵码以毫秒级的速度生成测试代码,且准确率和覆盖率都令人满意”

通过一篇文章&#xff0c;详细跟大家分享一下我在使用通义灵码过程中的感受。 一、定义 通义灵码&#xff0c;是一个智能编码助手&#xff0c;它基于通义大模型&#xff0c;提供代码智能生成、研发智能问答能力。 在体验过程中有任何问题均可点击下面的连接前往了解和学习。 …

网络安全实训八(y0usef靶机渗透实例)

1 信息收集 1.1 扫描靶机IP 1.2 收集靶机的端口开放情况 1.3 探测靶机网站的目录 1.4 发现可疑网站 1.5 打开可疑网站 2 渗透 2.1 使用BP获取请求 2.2 使用工具403bypasser.py探测可疑网页 2.3 显示可以添加头信息X-Forwarded-For:localhost来访问 2.4 添加之后转发&#xff…

芯片设计项目管理:国内某知名芯片半导体企业引进 PowerProject,构建国产化项目管理平台

国内芯片设计行业发展快速&#xff0c;随着其行业技术能力的不断扩大&#xff0c;芯片设计涵盖的领域和内容愈加丰富&#xff0c;因此&#xff0c;对专业化的项目管理理念与思路提出了更高的要求。 近日&#xff0c;国内某知名芯片设计企业选择北京奥博思软件技术有限公司&…

jantic/DeOldify部署(图片上色)附带Dockerfile和镜像

1. 克隆代码到DeOldify git clone https://github.com/jantic/DeOldify.git DeOldifyDeOldify源码 2. 安装依赖 这里会安装python以及创建deoldify环境 cd DeOldify conda env create -f environment.yml(base) rootDESKTOP-1FOD6A8:~/DeOldify# conda env create -f environm…

Java开发安全及防护

目录 一、开发安全 二、XSS介绍及防范措施 2.1何为XSS 2.2XSS分类 2.3常用方法 三、SQL注入介绍及防范措施 3.1何为SQL注入 3.2常用方法 四、重放介绍及防范措施 4.1何为重放 4.2常用方法 一、开发安全 在学习安全之前&#xff0c;我们首先学习漏洞&#xff0c;知道漏…

JavaScript控制语句和函数的使用

文章目录 前言一、控制语句 1.if条件语句2.switch多分支语句3.for循环语句4.while循环语句5.do...while循环语句6.break 与 continue 关键字二、函数 1.函数的定义2.函数的调用总结 前言 JavaScript 的控制语句和函数的使用&#xff0c;基本上同理于 Java。该篇文章主要展示如何…

力扣之1783.大满贯数量

文章目录 1. 1783.大满贯数量1.1 题干1.2 建表1.3 题解1.4 结果截图 1. 1783.大满贯数量 1.1 题干 表&#xff1a;Players ----------------------- | Column Name | Type | ----------------------- | player_id | int | | player_name | varchar | ----------------------…

深度学习实战89-基于改造后的长短期记忆网络LSTM 的猪肉价格预测模型研究

大家好,我是微学AI,今天给大家介绍一下深度学习实战89-基于改造后的长短期记忆网络LSTM 的猪肉价格预测模型研究。本文围绕基于改造后的长短期记忆网络 LSTM 的猪肉价格预测模型展开研究。首先介绍项目背景,阐述进行猪肉价格预测的重要性。接着详细讲解改造后的 LSTM 模型原…

LibSVM介绍及使用

介绍 LibSVM 是一个广泛使用的开源库&#xff0c;用于支持向量机&#xff08;SVM&#xff09;的实现。它由台湾大学的 Chih-Chung Chang 和 Chih-Jen Lin 开发。LibSVM 提供了一种简单易用的接口&#xff0c;支持多种 SVM 变体&#xff0c;包括分类、回归和分布估计。以下是一些…

【数据库】MySQL-基础篇-事务

专栏文章索引&#xff1a;数据库 有问题可私聊&#xff1a;QQ&#xff1a;3375119339 目录 一、事务简介 二、事务操作 1.未控制事务 1.1 测试正常情况 1.2 测试异常情况 2.控制事务一 1.1 查看/设置事务提交方式 1.2 提交事务 1.3 回滚事务 3.控制事务二 1.1 开启事…

C++ namespace(域)

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 namespace的价值 避免命名冲突&#xff1a;在大型项目或使用多个库的情况下&#xff0c;不同部分可能会定义相同名称的实体&#xff08;如变量、函数、类等&a…

fpga系列 HDL:简化的FIFO实现

CODE 下面是一个简化的FIFO实现示例&#xff0c;基于Verilog HDL&#xff1a; module fifo (input wire clk, // 时钟信号input wire reset, // 异步复位信号input wire wr_en, // 写使能信号input wire rd_en, // 读使能…

CSS中的位置定位总结

文章目录 静态定位相对定位绝对定位固定定位 静态定位 静态定位(position:static)/默认的文档流布局 块级元素按照书写顺序从上往下依次排列行内/行内块元素按照书写顺序从左到右依次排列&#xff0c;一行放不下才换行文档流中的元素都是紧密排布的&#xff0c;没有大的空隙&…