华清远见嵌入式学习——QT——作业2

作业要求:

代码运行效果图:

登录失败  和  最小化  和  取消登录

登录成功 和 X号退出

代码:

①:头文件

#ifndef LOGIN_H
#define LOGIN_H#include <QMainWindow>
#include <QLineEdit>     //行编辑器类
#include <QPushButton>   //按钮类
#include <QLabel>        //标签类
#include <QMovie>        //动图类
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class Login; }
QT_END_NAMESPACEclass Login : public QMainWindow
{Q_OBJECTpublic:Login(QWidget *parent = nullptr);~Login();//定义信号函数
signals:void my_signal();//定义槽函数
public slots:void cancel();    //关闭窗口void login();     //登录确认void minimize();  //窗口最小化private:Ui::Login *ui;QLineEdit *edit1;QLineEdit *edit2;QMovie *mv1;QLabel *lab1;QMovie *mv2;QLabel *lab2;QMovie *mv3;QLabel *lab3;QLabel *lab4;QPushButton *btn1;QPushButton *btn2;QPushButton *btn3;
};
#endif // LOGIN_H

②:源文件

#include "login.h"
#include "ui_login.h"Login::Login(QWidget *parent): QMainWindow(parent), ui(new Ui::Login)
{ui->setupUi(this);//关于窗口的设置this->resize(640,640);    //重新设置窗口大小this->setFixedSize(640,640);    //固定窗口大小this->setWindowFlag(Qt::FramelessWindowHint);   //将窗口标题去除this->setStyleSheet("background-color:rgb(179,183,170)");  //设置窗口背景颜色//关于行编辑器的设置edit1 = new QLineEdit(this);    //实例化一个行编辑器对象,用于输入登录账号edit1->resize(320,80);    //重新设置行编辑器的大小edit1->move(160,260);    //将行编辑器移动至合适的位置edit1->setStyleSheet("background-color:white");  //设置行编辑器背景颜色edit1->setPlaceholderText("账号");    //使用占位,提示要在该行编辑器内输入的内容edit2 = new QLineEdit(this);    //实例化一个行编辑器对象,用于输入登录密码edit2->resize(320,80);    //重新设置行编辑器的大小edit2->move(160,360);     //将行编辑器移动至合适的位置edit2->setPlaceholderText("密码");    //使用占位,提示要在该行编辑器内输入的内容edit2->setStyleSheet("background-color:white");   //设置行编辑器背景颜色edit2->setEchoMode(QLineEdit::Password);    //将行编辑器的输出模式设置为密码模式//关于动图和标签的设置//实例化一个动图对象,用于接收动图mv1 = new QMovie(":/pictrue/xxxh.gif");//将动图放入lab1中lab1 = new QLabel(this);    //实例化一个标签,用于存放动图lab1->resize(640,260);     //重新设置标签的大小lab1->setMovie(mv1);     //存放动图mv1->start();         //让动图动起来lab1->setScaledContents(true);         //自动适应label//实例化一个动图对象,用于接收动图mv2 = new QMovie(":/pictrue/xh5.gif");lab2 = new QLabel(this);     //实例化一个标签,用于存放动图lab2->resize(80,80);    //重新设置标签的大小lab2->move(80,260);     //将标签移动至合适的位置lab2->setMovie(mv2);    //存放动图mv2->start();           //让动图动起来lab2->setScaledContents(true);      //自动适应label//实例化一个动图对象,用于接收动图mv3 = new QMovie(":/pictrue/xh3.gif");lab3 = new QLabel(this);     //实例化一个标签,用于存放动图lab3->resize(80,80);    //重新设置标签的大小lab3->move(80,360);     //将标签移动至合适的位置lab3->setMovie(mv3);    //存放动图mv3->start();           //让动图动起来lab3->setScaledContents(true);      //自动适应labellab4 = new QLabel("罗小黑之家欢迎您的到来 (づ ̄3 ̄)づ╭❤~",this);   //实例化一个标签,用于填充文字lab4->resize(320,40);        //重新设置标签大小lab4->move(160,460);        //将标签移动至合适的位置//关于按钮的设置btn1 = new QPushButton("登录",this);     //实例化一个按钮对象,用于登录btn1->resize(150,60);      //重新设置按钮的大小btn1->setStyleSheet("background-color:rgb(138,183,113);border-radius:10px");   //设置按钮背景颜色及设置圆角btn1->move(160,500);    //移动按钮至合适位置btn2 = new QPushButton("x",this);     //实例化一个按钮对象,用于关闭窗口btn2->resize(30,30);      //重新设置按钮的大小btn2->setStyleSheet("background-color:white");   //设置按钮背景颜色btn2->move(610,0);    //移动按钮至合适位置btn3 = new QPushButton("-",this);     //实例化一个按钮对象,用于最小化窗口btn3->resize(30,30);      //重新设置按钮的大小btn3->setStyleSheet("background-color:white");   //设置按钮背景颜色btn3->move(580,0);    //移动按钮至合适位置//关于在UI界面使用的按钮的设置ui->btn4->resize(150,60);     //重新设置按钮的大小ui->btn4->setStyleSheet("background-color:rgb(138,183,113);border-radius:10px");   //设置按钮背景颜色及设置圆角ui->btn4->move(330,500);     //将按钮移动至合适的位置//手动连接信号和自定义的槽函数 基于qt4版的连接connect(ui->btn4,SIGNAL(clicked()),this,SLOT(cancel()));  //将btn4发送的点击信号用槽处理,使窗口关闭connect(btn2,SIGNAL(clicked()),this,SLOT(cancel()));  //将btn2发送的点击信号用槽处理,使窗口关闭//手动连接信号和自定义的槽函数 基于qt5版的连接connect(btn1,&QPushButton::clicked,this,&Login::login);connect(btn3,&QPushButton::clicked,this,&Login::minimize);}Login::~Login()
{delete ui;
}//对取消按钮和关闭按钮的槽函数处理
void Login::cancel()
{this->close();  //关闭窗口
}//对登录按钮的槽函数处理
void Login::login()
{//判断账号和密码是否正确if(edit1->text() == "admin" && edit2->text() == "123456"){//账号和密码正确,则登录成功,并关闭窗口qDebug() << "登录成功";this->close();}else{//账号和密码不正确,则登录失败qDebug() << "登陆失败";}
}//对最小化窗口按钮的槽函数处理
void Login::minimize()
{this->showMinimized();  //将窗口最小化
}

③:主函数文件

#include "login.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Login w;w.show();return a.exec();
}

思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208821.shtml

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

相关文章

Java Spring + SpringMVC + MyBatis(SSM)期末作业项目

本系统是一个图书管理系统&#xff0c;比较适合当作期末作业主要技术栈如下&#xff1a; - 数据库&#xff1a;MySQL - 开发工具&#xff1a;IDEA - 数据连接池&#xff1a;Druid - Web容器&#xff1a;Apache Tomcat - 项目管理工具&#xff1a;Maven - 版本控制工具&#xf…

探索人工智能领域——每日20个名词详解【day12】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

进程、线程、线程池状态

线程几种状态和状态转换 进程主要写明三种基本状态&#xff1a; 线程池的几种状态&#xff1a;

STM32的BKP与RTC简介

芯片的供电引脚 引脚表橙色的是芯片的供电引脚&#xff0c;其中VSS/VDD是芯片内部数字部分的供电&#xff0c;VSSA/VDDA是芯片内部模拟部分的供电&#xff0c;这4组以VDD开头的供电都是系统的主电源&#xff0c;正常使用时&#xff0c;全部都要接3.3V的电源上&#xff0c;VBAT是…

Leetcode2477. 到达首都的最少油耗

Every day a Leetcode 题目来源&#xff1a;2477. 到达首都的最少油耗 解法1&#xff1a;贪心 深度优先搜索 题目等价于给出了一棵以节点 0 为根结点的树&#xff0c;并且初始树上的每一个节点上都有一个人&#xff0c;现在所有人都需要通过「车子」向结点 0 移动。 对于…

从阻抗匹配看拥塞控制

先来理解阻抗匹配&#xff0c;但我不按传统方式解释&#xff0c;因为传统方案你要先理解如何定义阻抗&#xff0c;然后再学习什么是输入阻抗和输出阻抗&#xff0c;最后再看如何让它们匹配&#xff0c;而让它们匹配的目标仅仅是信号不反射&#xff0c;以最大能效被负载接收。 …

Amazon CodeWhisperer 开箱初体验

文章作者&#xff1a;Coder9527 科技的进步日新月异&#xff0c;正当人工智能发展如火如荼的时候&#xff0c;各大厂商在“解放”码农的道路上不断创造出各种 Coding 利器&#xff0c;今天在下就带大家开箱体验一个 Coding 利器&#xff1a; Amazon CodeWhisperer。 亚马逊云科…

99基于matlab的小波分解和小波能量熵函数

基于matlab的小波分解和小波能量熵函数&#xff0c;通过GUI界面导入西储大学轴承故障数据&#xff0c;以可视化的图对结果进行展现。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 99小波分解和小波能量熵函数 (xiaohongshu.com)https://www.xiaohongshu.co…

【LeetCode每日一题合集】2023.11.27-2023.12.3 (⭐)

文章目录 907. 子数组的最小值之和&#xff08;单调栈贡献法&#xff09;1670. 设计前中后队列⭐&#xff08;设计数据结构&#xff09;解法1——双向链表解法2——两个双端队列 2336. 无限集中的最小数字解法1——维护最小变量mn 和 哈希表维护已经去掉的数字解法2——维护原本…

二分查找|前缀和|滑动窗口|2302:统计得分小于 K 的子数组数目

作者推荐 贪心算法LeetCode2071:你可以安排的最多任务数目 本文涉及的基础知识点 二分查找算法合集 题目 一个数组的 分数 定义为数组之和 乘以 数组的长度。 比方说&#xff0c;[1, 2, 3, 4, 5] 的分数为 (1 2 3 4 5) * 5 75 。 给你一个正整数数组 nums 和一个整数…

response应用及重定向和request转发

请求和转发&#xff1a; response说明一、response文件下载二、response验证码实现1.前置知识&#xff1a;2.具体实现&#xff1a;3.知识总结 三、response重定向四、request转发五、重定向和转发的区别 response说明 response是指HttpServletResponse,该响应有很多的应用&…

Kafka在微服务架构中的应用:实现高效通信与数据流动

微服务架构的兴起带来了分布式系统的复杂性&#xff0c;而Kafka作为一款强大的分布式消息系统&#xff0c;为微服务之间的通信和数据流动提供了理想的解决方案。本文将深入探讨Kafka在微服务架构中的应用&#xff0c;并通过丰富的示例代码&#xff0c;帮助大家更全面地理解和应…

PaddleClas学习3——使用PPLCNet模型对车辆朝向进行识别(c++)

使用PPLCNet模型对车辆朝向进行识别 1 准备环境2 准备模型2.1 模型导出2.2 修改配置文件3 编译3.1 使用CMake生成项目文件3.2 编译3.3 执行3.4 添加后处理程序3.4.1 postprocess.h3.4.2 postprocess.cpp3.4.3 在cls.h中添加函数声明3.4.4 在cls.cpp中添加函数定义3.4.5 在main.…

时间序列预测 — VMD-LSTM实现单变量多步光伏预测(Tensorflow):单变量转为多变量

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 1.3 缺失值分析 2 VMD经验模态分解 3 构造训练数据 4 LSTM模型训练 5 预测 1 数据处理 1.1 导入库文件 import time import datetime import pandas as pd import numpy as np import matplotlib.pyplot as plt f…

优化算法 学习记录

文章目录 相关资料 优化算法梯度下降学习率牛顿法 随机梯度下降小批量随机梯度下降动量法动量法解决上述问题 AdaGrad 算法RMSProp算法Adam学习率调度器余弦学习率调度预热 相关资料 李沐 动手学深度学习 优化算法 优化算法使我们能够继续更新模型参数&#xff0c;并使损失函…

Elasticsearch:使用 Elasticsearch 向量搜索及 RAG 来实现 Chatbot

Elasticsearch 的向量搜索为我们的语义搜索提供了可能。而在人工智能的动态格局中&#xff0c;检索增强生成&#xff08;Retrieval Augmented Generation - RAG&#xff09;已经成为游戏规则的改变者&#xff0c;彻底改变了我们生成文本和与文本交互的方式。 RAG 使用大型语言模…

MongoDB的删除文档、查询文档语句

本文主要介绍MongoDB的删除文档、查询文档命令语句。 目录 MongoDB删除文档MongoDB查询文档 MongoDB删除文档 MongoDB是一种基于文档的NoSQL数据库&#xff0c;它使用BSON格式存储文档。删除文档是MongoDB数据库中的常见操作之一。 下面是MongoDB删除文档的详细介绍和示例&am…

导入自定义模块出现红色波浪线,但是能正常执行

问题描述&#xff1a; 导入自己定义的模块时&#xff0c;出现红色波浪线&#xff0c;可以继续执行 解决&#xff1a; 在存放当前执行文件的文件夹右键&#xff0c;然后将其设置为sources root即可 结果&#xff1a;

基于深度学习yolov5实现安全帽人体识别工地安全识别系统-反光衣识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 实现安全帽人体识别工地安全识别系统需要使用深度学习技术&#xff0c;特别是YOLOv5算法。下面是对基于YOLOv5实现安…

带你真正理解web地图切片规则

很多时候我们即使做完了项目还是对切片规则一知半解&#xff0c;只知道照着例子写代码&#xff0c;不理解WMTSCapabilities文件中参数的具体含义&#xff0c;也无法理解切片规则是如何产生的&#xff0c;不知道经纬度切图和平面切图的差别是啥&#xff0c;等等种种疑问&#xf…