QT作业3

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面

如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面

如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能

要求:基于属性版和基于静态成员函数版至少各用一个

代码:

主函数文件:

#include "widget.h"
#include "loginsuccess.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();//登录成功界面loginsuccess s;//连接信号与槽QObject::connect(&w,&Widget::my_jump,&s,&loginsuccess::my_show);return a.exec();
}

登录界面源文件:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//纯净模式this->setWindowFlag(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground);this->setWindowIcon(QIcon(":/Logo/1.jpg"));}Widget::~Widget()
{delete ui;
}//cancel按钮槽函数
void Widget::on_pushButton_2_clicked()
{//消息对话框( 基于属性版本)QMessageBox msg(QMessageBox::Question,"问题窗口","请确定是否取消登录",QMessageBox::Yes | QMessageBox::No,this);//调用exec()弹出对话框int ret = msg.exec();if(ret == QMessageBox::Yes){//关闭当前窗口this->close();}
}void Widget::on_pushButton_clicked()
{//消息对话框(基于静态成员函数版本)if(ui->lineEdit->text() == "admin" && ui->lineEdit_2->text() == "123456"){int ret = QMessageBox::information(this,"信息窗口","登录成功",QMessageBox::Yes);if(ret == QMessageBox::Yes){//关闭当前窗口this->close();emit my_jump();}}else{//消息对话框(基于静态成员函数版本)int ret = QMessageBox::critical(this,"错误窗口","账号与密码不匹配,是否重新登录",QMessageBox::Yes | QMessageBox::No);if(ret == QMessageBox::No){//关闭当前窗口this->close();}}
}

登录成功界面源文件:

#include "loginsuccess.h"
#include "ui_loginsuccess.h"loginsuccess::loginsuccess(QWidget *parent) :QWidget(parent),ui(new Ui::loginsuccess)
{ui->setupUi(this);
}loginsuccess::~loginsuccess()
{delete ui;
}//自定义槽函数实现
void loginsuccess::my_show()
{//展示当前窗口this->show();
}

登录界面头文件:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void my_jump();  //自定义信号函数private slots:void on_pushButton_2_clicked();void on_pushButton_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

登录成功界面头文件:

#ifndef LOGINSUCCESS_H
#define LOGINSUCCESS_H#include <QWidget>
#include <QMessageBox>namespace Ui {
class loginsuccess;
}class loginsuccess : public QWidget
{Q_OBJECTpublic:explicit loginsuccess(QWidget *parent = nullptr);~loginsuccess();public slots:void my_show();  //自定义槽函数private:Ui::loginsuccess *ui;
};#endif // LOGINSUCCESS_H

登录界面ui设计编辑样式表:

*{background-color: rgb(255, 255, 255);
}QFrame#frame{border-image: url(:/Logo/wanXia.jpg);border-radius:30px;
}
#frame_2{background-color: rgba(132, 132, 132, 120);border-radius:30px;
}QLabel#label{background-color: rgba(116, 116, 116, 130);border-radius:30px;
}
#label_2{background:transparent;	color: rgba(255, 255, 255, 120);
}
#label_3{background:transparent;	color: rgba(255, 255, 255, 120);font: 9pt "仿宋";
}QLineEdit{background:transparent;border:none;border-bottom:1px solid rgba(255, 255, 255, 150);font: 14pt "仿宋";color: rgba(255, 255, 255, 120);
}QPushButton#pushButton{border-radius:10px;color: rgba(255, 255, 255, 180);background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(242, 198, 208, 255), stop:1 rgba(255, 255, 215, 220));font: 14pt "仿宋";
}
QPushButton#pushButton:hover{border-radius:10px;color: rgba(255, 255, 255, 180);background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(242, 168, 208, 255), stop:1 rgba(255, 255, 215, 220));font: 14pt "仿宋";
}
QPushButton#pushButton:pressed{border-radius:10px;color: rgba(255, 255, 255, 180);background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(242, 198, 208, 255), stop:1 rgba(255, 255, 215, 220));font: 14pt "仿宋";padding-top:5px;padding-left:5px;
}#pushButton_2{border-radius:10px;color: rgba(255, 255, 255, 180);background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(242, 198, 208, 255), stop:1 rgba(255, 255, 215, 220));font: 14pt "仿宋";
}
#pushButton_2:hover{border-radius:10px;color: rgba(255, 255, 255, 180);background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(242, 168, 208, 255), stop:1 rgba(255, 255, 215, 220));font: 14pt "仿宋";
}
#pushButton_2:pressed{border-radius:10px;color: rgba(255, 255, 255, 180);background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(242, 198, 208, 255), stop:1 rgba(255, 255, 215, 220));font: 14pt "仿宋";padding-top:5px;padding-left:5px;
}

运行结果:

取消功能:

登录失败:

登录成功:

思维导图:

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

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

相关文章

对Arthas-Trace命令的一次深度剖析,竟发现...

前言&#xff1a;此文仅为笔者学习Arthas源码的一次尝试&#xff0c;不对本文结论负全部责任。 一、背景 笔者在学习arthas这个十分方便的小工具的过程中&#xff0c;发现&#xff1a; 目前据arthas官方解释&#xff1a;因为trace多层是十分消耗资源的&#xff0c;因此trace命…

【期刊出版征稿】2024年艺术、教育和管理国际学术会议(ICAEM2024)

2024年艺术、教育和管理国际学术会议 2024 International Conference on Arts, Education and Management&#xff08;ICAEM2024&#xff09; 2024年艺术、教育和管理国际学术会议&#xff08;ICAEM2024&#xff09;将于2024年2月02-04日在马来西亚-吉隆坡召开。会议主题主要…

跨境助手:提升跨境电商卖家运营效率的利器

在如今全球化的商业环境中&#xff0c;跨境电商成为越来越多卖家追逐的商机。然而&#xff0c;对于新手卖家来说&#xff0c;跨境电商的复杂性和竞争激烈的市场环境可能会成为入坑的风险。如何降低风险、提高运营效率成为卖家们关注的焦点。而跨境助手作为一款专为跨境电商卖家…

Python Pandas 如何增加/插入一列数据(第5讲)

Python Pandas 如何增加/插入一列数据(第5讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

Python实现冰墩墩

目录 一、运行效果 图片效果 二、项目概述 三、开发环境 四、实现步骤及代码 1.导入需要的库。 2.完成剩余部分代码。 五、项目总结 六、源码获取 一、运行效果 图片效果 二、项目概述 这个项目使用了turtle库绘制了一个编程乐学的Logo。Logo中包含了一个笑脸&#xf…

SpringBoot接入轻量级分布式日志框架GrayLog

1.前言 日志在我们日常开发定位错误&#xff0c;链路错误排查时必不可少&#xff0c;如果我们只有一个服务&#xff0c;我们可以只简单的通过打印的日志文件进行排查定位就可以&#xff0c;但是在分布式服务环境下&#xff0c;多个环境的日志统一收集、展示则成为一个问题。目…

基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(一)

系列文章目录 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xff08;一&#xff09; 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xf…

1U、2U、4U和42U服务器,看完秒懂!

晚上好&#xff0c;我的网工朋友。 服务器是一个很广泛的概念&#xff0c;涵盖了各种类型和规格的计算机&#xff0c;用于提供各种网络和数据服务。 而机架服务器是当前数据中心和专业计算环境中&#xff0c;使用最为广泛的服务器类型之一。 机架式服务器的外形看来不像计算…

C++面试宝典第7题:重载自增自减运算符

题目 编程实现一个自定义类CMyInteger,它重载了前缀和后缀形式的++和--操作符。同时,CMyInteger类还有一个Print成员函数,用于输出内部成员变量的值。完成该类后,下面使用CMyInteger的代码应能够编译通过,并得到与内置整形int相同的效果。 int main() {CMyInteger mi1(10…

考研英语一图表作文必背模版句

英语一的作文还是很靠日常积累的&#xff0c;依据潘赟老师的九宫格理论&#xff1a; 2——图画描述5——意义论证8——建议措施 这3个模块式最为核心也是最容易拉开分差的&#xff0c;对于时间有限的同志不建议忙下功夫浪费时间&#xff0c;而对于另外6个模块&#xff0c;还是…

Flink系列之:自定义函数

Flink系列之&#xff1a;自定义函数 一、自定义函数二、概述三、开发指南四、函数类五、求值方法六、类型推导七、自动类型推导八、定制类型推导九、确定性十、内置函数的确定性十一、运行时集成十二、标量函数十三、表值函数十四、聚合函数十五、表值聚合函数 一、自定义函数 …

【深度学习目标检测】八、基于yolov5的抽烟识别(python,深度学习)

YOLOv5是目标检测领域一种非常优秀的模型&#xff0c;其具有以下几个优势&#xff1a; 1. 高精度&#xff1a;YOLOv5相比于其前身YOLOv4&#xff0c;在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进&#xff0c;如更深的网络结构、更多的特征层和更高分辨率的输入图…

Git及Linux命令介绍

Git介绍 Git 命令如何工作 首先&#xff0c;必须确定我们的代码存储在哪里。常见的假设是只有两个位置 - 一个位于 Github 等远程服务器上&#xff0c;另一个位于我们的本地计算机上。然而&#xff0c;这并不完全准确。 Git 在我们的机器上维护了三个本地存储&#xff0c;这意…

Linux-----12、时间日期

# 时间日期 # 时区设置 在Linux (opens new window)系统中&#xff0c;默认使用的是UTC时间。 即使在安装系统的时候&#xff0c;选择的时区是亚洲上海&#xff0c;Linux默认的BIOS时间&#xff08;也称&#xff1a;硬件时间&#xff09;也是UTC时间 (opens new window)。 在…

90%的人学Python爬虫都干过这种事,别不承认!

可以说&#xff0c;我是因为想批量下载一个网站的图片&#xff0c;才开始学的python爬虫。当一张一张图片自动下载下来时&#xff0c;满满的成就感&#xff0c;也满满的罪恶感……哈哈哈&#xff01;&#xff01;&#xff01;窈窕淑女&#xff0c;君子好逑&#xff0c;这篇文章…

Android 大版本升级变更截图方法总结

Android 大版本升级变更截图方法总结 一、Android R (11) 平台二、Android S (12) 平台三、Android U (14) 平台 Android 原生的截屏功能是集成在 SystemUI 中&#xff0c;因此我们普通应用想要获取截图方法&#xff0c;就需要研读下 SystemUI 截屏部分的功能实现。 一、Androi…

Android 移动端编译 cityhash动态库

最近做项目&#xff0c; 硬件端 需要 用 cityhash 编译一个 动态库 提供给移动端使用&#xff0c;l 记录一下 编译过程 city .cpp // // Created by Administrator on 2023/12/12. // // Copyright (c) 2011 Google, Inc. // // Permission is hereby granted, free of charg…

java配置+J_IDEA配置+git配置+maven配置+基本语句

当前目录文件夹dir 进入文件夹cd 返回上一级cd.. 创建文件夹&#xff1a;mkdir 文件名删除文件夹&#xff1a;rd 文件夹名&#xff0c; 目录不为空不能直接删 rd /s 带子文件夹一起删 清屏cls 切换d盘才能进入 下载git地址&#xff1a; Git - Downloading Package (g…

使用youtube的api

如何使用youtube的data api https://console.cloud.google.com/apis/dashboard 到这个地方先启用api,找到YouTube Data API v3 这个api,启用它 然后创建凭据 去创建凭据,里面创建相应的客户端,web的需要填写redirect地址,就是回调用的.客户端不需要这个. 创建客户端不需要详…

一文读懂Allins-首个基于 AMM 的多链铭文资产交易协议

“Allins 是铭文赛道中基础设施类的代表&#xff0c;该协议致力于以 AMM 的方式推动铭文资产的流动性&#xff0c;并为铭文资产交易者提供更好的 UI/UX。” 2023年1月份后&#xff0c;比特币Ordinals协议的推出为铭文赛道的兴起奠定了基础。该协议以聪为单位将比特币划分&#…