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

华清远见嵌入式学习——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();
}

思维导图:

相关文章:

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

作业要求&#xff1a; 代码运行效果图&#xff1a; 登录失败 和 最小化 和 取消登录 登录成功 和 X号退出 代码&#xff1a; ①&#xff1a;头文件 #ifndef LOGIN_H #define LOGIN_H#include <QMainWindow> #include <QLineEdit> //行编辑器类 #include…...

C# Winfrm 编写一个天气查看助手

#前言# 最近这个北方的天气啊经常下雪&#xff0c;让我想起来我上学时候写的那个天气预报小功能了&#xff0c;今天又复现了一下&#xff0c;哈哈哈&#xff0c;大家当个乐子看哈&#xff01; 1.创建项目 2.添加引用 上图所示&#xff0c;下载所需天气预报标识&#xff0c;网站…...

基于SpringBoot和微信小程序的农场信息管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot和微信小程序的农场信息管…...

Linux统计网卡流量

cat /proc/net/dev Linux 内核提供了一种通过 /proc 文件系统&#xff0c;在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统&#xff0c;它只存在内存当中&#xff0c;而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。…...

设计可编辑表格组件

前言 什么是可编辑表格呢&#xff1f;简单来说就是在一个表格里面进行表单操作&#xff0c;执行增删改查。这在一些后台管理系统中是尤为常见的。 今天我们根据vue2 element-ui来设计一个表单表格组件。&#xff08;不涉及完整代码&#xff0c;想要使用完整功能可以看底部连…...

低代码是美食!!!

一、什么是低代码 低代码是一种软件开发方法&#xff0c;通过图形化界面和少量手写代码&#xff0c;让开发者能够更迅速、简单地构建应用程序。相比传统的编码方式&#xff0c;低代码平台提供了可视化的开发工具和预构建的组件&#xff0c;使开发过程更加快捷高效。 二、低代码…...

计算机网络网络层(期末、考研)

计算机网络总复习链接&#x1f517; 目录 路由算法静态路由与动态路由距离-向量算法链路状态路由算法层次路由 IPv4&#xff08;这个必考&#xff09;IPv4分组IPv4地址与NAT子网划分与子网掩码、CIDRARP、DHCP与ICMP地址解析协议ARP动态主机配置协议DHCP IPv6IPv6特点 路由协议…...

LCR 120. 寻找文件副本

解题思路&#xff1a; 利用增强for循环遍历documents&#xff0c;将遇见的id加入hmap中&#xff0c;如果id在hamp中存在&#xff0c;则直接返回id class Solution {public int findRepeatDocument(int[] documents) {Set<Integer> hmapnew HashSet<>();for(int d…...

git切换分支

切换到你想要保留的分支&#xff1a; 确保你在本地已经切换到了你想要保留的分支。 git checkout 要保留的分支名更改远程仓库地址&#xff1a; 如果你还没有更改远程仓库地址&#xff0c;使用 git remote set-url 来更改它。 git remote set-url origin 新的仓库地址推送当前分…...

Android 在UploadEventService使用ThreadPoolManager线程管理传递数据给后台

Android 在UploadEventService使用ThreadPoolManager线程管理传递数据给后台&#xff0c;如何实现呢&#xff1f; 可以通过以下步骤使用ThreadPoolManager线程管理传递数据给后台&#xff1a; 创建一个ThreadPoolManager类来管理线程池&#xff0c;比如&#xff1a; public cl…...

网络(十)ACL和NAT

前言 网络管理在生产环境和生活中&#xff0c;如何实现拒绝不希望的访问连接&#xff0c;同时又要允许正常的访问连接&#xff1f;当下公网地址消耗殆尽&#xff0c;且公网IP地址费用昂贵&#xff0c;企业访问Internet全部使用公网IP地址不够现实&#xff0c;如何让私网地址也…...

JavaScript算法46- 最长连续序列(leetCode:128middle)

128. 最长连续序列 一、题目 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 输入&#xff1a;nums [100,4,200,1,3,2] 输出…...

提升 API 可靠性的五种方法

API 在我们的数字世界中发挥着关键的作用&#xff0c;使各种不同的应用能够相互通信。然而&#xff0c;这些 API 的可靠性是保证依赖它们的应用程序功能正常、性能稳定的关键因素。本文&#xff0c;我们将探讨提高 API 可靠性的五种主要策略。 1.全面测试 要确保 API 的可靠性…...

【K8S 系列】认识k8s、k8s架构

一、什么是k8s? Kubernetes 简称 k8s&#xff0c;是支持云原生部署的一个平台&#xff0c;k8s 本质上就是用来简化微服务的开发和部署的&#xff0c;用于自动化部署、扩展和管理容器化应用的开源容器编排技术。对于传统的docker其实也提供了容器编排的技术docker-compose&…...

通过这5步,快速成为数据分析师

1. 学习基础知识&#xff1a;掌握统计学、数学和编程等基础知识是成为数据分析师的第一步。你可以参加在线课程、教育平台或自学来提高自己的技能。 2. 学习数据分析工具&#xff1a;熟练使用数据分析工具如Python、R和SQL等是必要的。这些工具可以帮助你处理和分析大量的数据…...

深入解析 Spring 和 Spring Boot 的区别

目录 引言 1. 设计理念 1.1 Spring 框架的设计理念 1.2 Spring Boot 的设计理念 2. 项目配置 2.1 Spring 框架的项目配置 2.2 Spring Boot 的项目配置 3. 自动配置 3.1 Spring 框架的自动配置 3.2 Spring Boot 的自动配置 4. 微服务支持 4.1 Spring 框架的微服务支持…...

Python日期范围按旬和整月以及剩余区间拆分

昨天见到了一个比较烧脑的问题&#xff1a; 咋一看可能理解问题比较费劲&#xff0c;可以直接看结果示例&#xff1a; 当然这个结果在原问题上基础上有一定改进&#xff0c;例如将同一天以单个日期的形式展示。 如何解决这个问题呢&#xff1f;大家可以先拿测试用例自己试一下…...

windows安装sqlserver2008后连接失败问题

刚安装好的sqlserver在安装服务器上&#xff0c;直接使用Windows身份认证登录就报错 未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置为允许远程连接。&#xff08;provider&#xff1a;命名管道提供程序&#xff0c;error&#xff1a;40 -无法打开到SQLS…...

mysql innodb知识记录

官方文档 官网架构图 innodb 特性 内存 buffer pool 采用优化后的LRU算法&#xff0c; 3/8 of the buffer pool is devoted to the old sublist.The midpoint of the list is the boundary where the tail of the new sublist meets the head of the old sublist.When In…...

在排序数组中查找元素的第一个和最后一个位置(Java详解)

一、题目描述 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...

2025.6.9总结(利与弊)

凡事都有两面性。在大厂上班也不例外。今天找开发定位问题&#xff0c;从一个接口人不断溯源到另一个 接口人。有时候&#xff0c;不知道是谁的责任填。将工作内容分的很细&#xff0c;每个人负责其中的一小块。我清楚的意识到&#xff0c;自己就是个可以随时替换的螺丝钉&…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...

CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?

在现代前端开发中&#xff0c;Utility-First (功能优先) CSS 框架已经成为主流。其中&#xff0c;Tailwind CSS 无疑是市场的领导者和标杆。然而&#xff0c;一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...