Day 72

news/2024/9/19 4:46:45/ 标签: qt

作业

#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.ppmy.cn/news/1525610.html

相关文章

性能测试 —— linux服务器搭建JMeter+Grafana+Influxdb监控可视化平台!

前言 在当前激烈的市场竞争中&#xff0c;创新和效率成为企业发展的核心要素之一。在这种背景下&#xff0c;如何保证产品和服务的稳定性、可靠性以及高效性就显得尤为重要。 而在软件开发过程中&#xff0c;性能测试是一项不可或缺的环节&#xff0c;它可以有效的评估一个系…

Leetcode - 周赛414

目录 一&#xff0c;3280. 将日期转换为二进制表示 二&#xff0c;3281. 范围内整数的最大得分 三&#xff0c;3282. 到达数组末尾的最大得分 四&#xff0c;3283. 吃掉所有兵需要的最多移动次数 一&#xff0c;3280. 将日期转换为二进制表示 本题就是简单的字符串和整数之…

EG边缘计算网关连接中移ONENET物联网平台(MQTT协议)

上文&#xff1a;EG边缘计算网关连接阿里云物联网平台&#xff08;MQTT协议&#xff09; 需求概述 本章节主要实现一个流程&#xff1a;EG8200mini采集Modbus RTU数据&#xff0c;通过MQTT协议连接中移ONENET物联网平台 Modbus RTU采集此处不做过多赘述&#xff0c;可参考其…

在线小说|基于java的小说阅读系统小程序(源码+数据库+文档)

在线小说|小说阅读系统|小说阅读系统小程序 目录 基于java的小说阅读系统小程序 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布…

MySQL一:在Ubuntu下安装MySQL数据库

目录 前言 1.查看操作系统版本 2.添加MySQLAPT源 2.1下载发布包 ​编辑 2.2安装发布包 3.安装MySQL 4.查看MySQL状态 5.开启自启动 ​编辑 6.登录MySQL 前言 操作系统版本为Ubuntu 22.04.6LTS 1.查看操作系统版本 lsb_release -a 2.添加MySQLAPT源 2.1下载发布包 M…

鸿蒙(API 12 Beta6版)超帧功能开发【顶点标记】

概述 OpenGTX是GPU Turbo X的开放式入口&#xff0c;根据游戏开发者主动提供的游戏过程中的关键信息&#xff0c;使能LTPO&#xff08;动态帧率/刷新率&#xff09;等游戏加速方案&#xff0c;助力游戏开发者打造高画质、高流畅、低功耗极致体验。LTPO通过动态感知游戏渲染状态…

ACL 2024:交叉领域情感分析——论文阅读笔记

前言 阅读了一篇ABSA的论文&#xff0c;在这里写下自己的一些理解小笔记&#xff0c;可能有点小乱&#xff0c;原文在这下面&#xff1a; 论文链接&#xff1a;Refining and Synthesis: A Simple yet Effective Data Augmentation Framework for Cross-Domain Aspect-based Sen…

vue2响应式系统是如何实现的(手写)

引言 喜欢请点赞&#xff0c;支持点在看。 关注牛马圈&#xff0c;干货不间断。 忆往昔 回头看&#xff0c;已经使用vue2多年&#xff0c;虽然也掌握了其他几种前端框架&#xff0c;但对vue2是真爱。 核心概念 Object.defineProperty Vue 2的响应式系统核心是使用了Object.de…

深入理解java并发编程之aqs框架

跟synchronized 相比较&#xff0c;可重入锁ReentrankLock其实原理有什么不同&#xff1f; 所得基本原理是为了达到一个目的&#xff1b;就是让所有线程都能看到某种标记。synchronized通过在对象头中设置标记实现了这一目的&#xff0c;是一种JVM原生的锁实现方式。而Reentran…

​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​

1. 请尽可能详细地说明&#xff0c;进程和线程的区别&#xff0c;分别有哪些应用场景&#xff1f;进程间如何通信&#xff1f;线程间如何通信&#xff1f;你的回答中不要写出示例代码。 进程和线程是操作系统中的两个基本概念&#xff0c;它们在计算机系统中扮演着不同的角色&…

《数据结构(C语言版)第二版》第八章-排序(8.5-归并排序、8.6基数排序、8.7 外部排序)

8.5 归并排序 (Merging Sort) 【基本思想】 将两个或两个以上的有序表合并成一个有序表的过程。 将两个有序表合并成一个有序表的过程称为2-路归并&#xff0c;2-路归并最为简单和常用。 假设初始序列含有n个记录&#xff0c;则可看成是n个有序的子序列&#xff0c;每个子序列…

Git换行符自动转换参数core.autocrlf的用法

core.autocrlf 是 Git 中用于控制换行符自动转换的配置选项。它有以下几个可能的值&#xff1a; 1. true 作用&#xff1a;在 checkin 时将 CRLF 转换为 LF&#xff0c;在 checkout 时将 LF 转换为 CRLF。适用场景&#xff1a;适用于 Windows 用户&#xff0c;希望在本地文件…

如何让Windows控制台窗口不接受鼠标点击(禁用鼠标输入)

一、简述 在我们编写控制台应用程序时&#xff0c;默认情况下程序的打印输出会在控制台窗口中进行显示&#xff0c;我们在写服务功能时在窗口中会不断打印消息输出&#xff0c;这个时候如果使用鼠标点击了控制台窗口&#xff0c;会阻塞程序的继续运行&#xff0c;导致我们的程…

Python安装:Mac 使用brew 安装Python2 和 Python3

安装python ## python2 brew install python ## python3 brew install python3出现错误 Error: An unexpected error occurred during the brew link step The formula built, but is not symlinked into /usr/local Permission denied dir_s_mkdir - /usr/local/Frameworks …

uniapp媒体

uni.previewImage实现图片放大预览 // 图片预览函数function onPreview(index) {// 收集所有图片的urlvar urls pets.value.data.map(item > item.url)// 预览图片uni.previewImage({current: index, // 当前预览的图片索引urls: urls // 所有图片的url数组})}

HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题

本文旨在纪录自己对TextTimer使用过程的疑惑问题 我在查看教程时候&#xff0c;发现很多博客在onTimer(event: (utc: number, elapsedTime: number) > void) 这里提到elapsedTime&#xff1a;计时器经过的时间&#xff0c;单位为毫秒。我不清楚是否为版本问题。 在我查看ver…

编写XBOX控制器实现鼠标键盘输入

1.核心部分, XINPUT输入封装 XInput封装https://mp.csdn.net/mp_blog/creation/editor/1420701282.对话框窗口编写 Win32 对话框封装-CSDN博客https://blog.csdn.net/Flame_Cyclone/article/details/142110008?spm1001.2014.3001.5501 3.使用到的其他封装 字符串编码转换与…

Azure web app has no access to openai private endpoint in virtual network

题意&#xff1a;"Azure Web 应用无法访问虚拟网络中的 OpenAI 私有端点。" 问题背景&#xff1a; I am trying to host a web application similar to a private ChatGPT instance within a secluded virtual network, ensuring that theres no external internet …

以太网--TCP/IP协议(二)

上文中讲述了IP协议&#xff0c;本文主要来讲一下TCP协议。 TCP协议 &#xff08;1&#xff09;端到端通信 直接把源主机应用程序产生的数据传输到目的主机使用这 些数据的应用程序中&#xff0c;就是端到端通信。 &#xff08;2&#xff09;传输层端口 公认端口&#xff0…

CCF刷题计划——训练计划(反向拓扑排序)

训练计划 计算机软件能力认证考试系统 这道题70分还是很好拿的。后面30分需要用到 反向拓扑排序 &#xff0c;相对而言就麻烦点&#xff0c;需要逆序遍历。不着急&#xff0c;我们慢慢来。首先给出70分的代码。 本题可以学到&#xff1a;反向拓扑排序 70分题解&#xff1a;…