QT day3作业

1.思维导图

 

2、

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面
如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户迪纳基Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能
要求:基于属性版和基于静态成员函数版至少各用一个

头文件:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMovie>//动图类
#include <QPushButton>//按钮类
#include <QtTextToSpeech>//文本转语音类
#include <QMessageBox>//对话框类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECT//宏,信号与槽public:Widget(QWidget *parent = nullptr);~Widget();
signals:void my_jump();//第一个界面的信号private:Ui::Widget *ui;QTextToSpeech *speecher;//定义一个语音播报着public slots: //表示该权限下是私有槽函数(一般由系统提供)void my_slot();void my_slot1();};
#endif // WIDGET_H

 sec.h

#ifndef SEC_H
#define SEC_H#include <QWidget>
#include <QMenuBar>
namespace Ui {
class sec;
}class sec : public QWidget
{Q_OBJECTpublic:explicit sec(QWidget *parent = nullptr);~sec();private:Ui::sec *ui;
public slots:void my_jump_slot();//第二个界面的槽函数
};#endif // SEC_H

 

主函数:

main.cpp 

#include "widget.h"
#include "sec.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;//实例化第一个窗口w.show();sec s; //实例化第二个窗口//将第一个窗口和第二个窗口连接QObject::connect(&w,&Widget::my_jump,&s,&sec::my_jump_slot);return a.exec();
}

功能函数:

 widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);speecher =new QTextToSpeech(this);//给语音播报者实例化空间//***********************窗口类*******************************//this->setWindowFlags(Qt::FramelessWindowHint);//***********************标签类*******************************//QMovie *mv=new QMovie(":/new/prefix1/22/1.gif");//设置动图ui->logoLab->setMovie(mv);//将动图放到logo标签上mv->start();//让动图开始ui->logoLab->setScaledContents(true);//设置动图自适应//设置头像样式ui->labh->setStyleSheet("border-radius:30px");//手动连接信号和系统的槽函数  基于qt4版的连接  该连接是不友好的连接connect(ui->cancelButton,SIGNAL(clicked()),this,SLOT(my_slot()));//手动连接信号和自定义槽函数  基于qt5版的连接  该连接是友好的连接connect(ui->loginButton,&QPushButton::clicked,this,&Widget::my_slot1);
}Widget::~Widget()
{delete ui;
}void Widget::my_slot() //取消按钮自定义的函数处理
{        //基于静态成员函数版本实现int ret=QMessageBox::question(this,//父组件"问题",//标题"您是否确定要退出登录?",//文本QMessageBox::Yes|QMessageBox::No);//提供的按钮if(ret==QMessageBox::Yes)//对用户选中的按钮,执行不同的功能{this->close();//关闭当前的界面}}void Widget::my_slot1()//登录按钮自定义的函数处理
{if(ui->lineEdit->text()=="admin" && ui->lineEdit_2->text()=="123456")//判断登录的账号和密码是否正确{ui->msgLab->setText("登陆成功!");//修改状态信息标签speecher->say("登录成功");//语音播报QMessageBox box(QMessageBox::Information, //基于属性版本"提示",                  //标题"登陆成功",                //文本QMessageBox::Ok,          //提供按钮this);                         //父对象int  ret=box.exec();          //使用exec()弹出对话框if(ret==QMessageBox::Ok)  //根据用户选中的按钮 执行不同的功能{emit this->my_jump();//触发一个界面的信号this->close(); //关闭当前的界面}}else{speecher->say("登录失败");//语音播报int res=QMessageBox::critical(this,     //父组件 //基于静态成员函数版本实现"错误",  //标题"账号和密码不匹配,是否重新登录?",//文本QMessageBox::Yes|QMessageBox::No);//提供的按钮ui->msgLab->setText("登陆失败!");//修改状态信息标签if(res==QMessageBox::Yes)   //对用户选中的按钮,执行不同的功能{ui->lineEdit_2->setText("");//将密码行编辑器内容清空}else{this->close();//关闭当前的界面}}}

 sec.cpp

#include "sec.h"
#include "ui_sec.h"sec::sec(QWidget *parent) :QWidget(parent),ui(new Ui::sec)
{ui->setupUi(this);}sec::~sec()
{delete ui;
}
//槽函数的实现
void sec::my_jump_slot()
{this->show();
}

 实际效果:

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

 

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

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

代码主要功能截图:

 

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

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

相关文章

Oracle 11g 多数据库环境下的TDE设置

19c的TDE wallet的设置是在数据库中设置的&#xff0c;也就是粒度为数据库&#xff0c;因此不会有冲突。 而11g的设置是在sqlnet.ora中&#xff0c;因此有可能产生冲突。 这里先将一个重要概念&#xff0c;按照文档的说法&#xff0c;wallet是不能被数据库共享的。 If there …

不懂找伦敦银趋势?3个方法搞定

趋势是我们的朋友&#xff0c;但是这个朋友却很喜欢跟我们开玩笑&#xff0c;如果我们不留意&#xff0c;根本发觉不了它的存在。怎么找到趋势本体并且和它做个好朋友呢&#xff1f;下面我们就来介绍三个方法。 数波段的高点和低点。我们以当前的市场波动价格为轴&#xff0c;向…

IDEA中更换java项目JDK

我们打开IDEA 打开项目 然后选择 File 下的 Project Structure 这里 我们下拉选择自己需要的JDK Sources这里 也要设置一下JDK对应版本 然后 上面这个 Project 中 也要设置一下对应jdk的版本 保持一直 然后 我们打开 File 下的 Settings 然后 找到如下图配置 如果JKD版本看…

深度学习人体语义分割在弹幕防遮挡上的实现 - python 计算机竞赛

文章目录 1 前言1 课题背景2 技术原理和方法2.1基本原理2.2 技术选型和方法 3 实例分割4 实现效果5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人体语义分割在弹幕防遮挡上的应用 该项目较为新颖&#xff0c;适合作为竞…

Unity Meta Quest 一体机开发(七):配置玩家 Hand Grab 功能

文章目录 &#x1f4d5;教程说明&#x1f4d5;玩家物体配置 Hand Grab Interactor⭐添加 Hand Grab Interactor 物体⭐激活 Hand Grab Visual 和 Hand Grab Glow⭐更新 Best Hover Interactor Group &#x1f4d5;配置可抓取物体&#xff08;无抓取手势&#xff09;⭐刚体和碰撞…

mysql 集群恢复

准备使用集群的时候发现集群起不来&#xff0c; 发现抱错集群各个节点都是readonly 状态&#xff0c;找了很多资料&#xff0c;由于集群处于不一致的情况需要防止不同的节点数据写入脏数据 取消节点readonly 方法如下&#xff1a; MySQL 取消 super read only 直接关闭read…

Angular 路由无缝导航的实现与应用(六)

文章目录 什么是 Angular 路由配置路由模块在模板中使用路由链接在组件中获取路由参数 Angular 是一种流行的前端开发框架&#xff0c;它提供了强大的路由功能&#xff0c;用于构建单页应用程序&#xff08;SPA&#xff09;。本文将介绍 Angular 路由的基本概念和使用方法&…

【计算机网络】P1 计算机网络概述

P1 计算机网络概述 概念组成角度1&#xff1a;组成部分角度2&#xff1a;工作方式角度3&#xff1a;功能组成 功能分类按分布范围分按使用者分按交换技术按拓扑结构分按传输技术分 标准化工作及相关组织标准化工作相关组织 概念 三网融合 通过 计算机网络&#xff0c;将 电信…

DDPM的学习

Denoising Model 首先是宏观理解一下 Denoising Model 的输入 去噪很多步&#xff0c;用的是同一个Denoising Model&#xff0c;但是输入图片可能差距很大。解决方法&#xff1a;给Denoising Model多输入一个变量&#xff0c;表示现在的去噪阶段&#xff0c;让Denoising Mod…

C++继承同名成员的处理方式

访问方式 访问子类同名成员&#xff0c;直接访问即可访问父类同名成员&#xff0c;需要加作用域 总结 子类对象可以直接访问父类中的同名成员子类对象加作用域可以访问父类同名成员当父类与子类拥有同名的成员函数&#xff0c;子类会隐藏父类中同名成员函数&#xff0c;加作…

解决requests 2.28.x版本SSL错误:证书验证失败

1、问题背景 在使用requests 2.28.1版本时&#xff0c;我进行HTTP post传输报告负载时&#xff0c;由于SSL验证设置为True&#xff0c;请求失败&#xff0c;错误如下&#xff1a;(Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certifi…

ChatGPT最强?文心一言与ChatGPT对比

对于同一个问题我们分别对文心一言3.5和ChatGPT3.5输出回答&#xff0c;结果如下图&#xff0c;可以看到文心一言的回答更好&#xff0c;文心一言是由百度开发的人工智能语言模型&#xff0c;它的中文理解能力主要是基于百度强大的搜索引擎和自然语言处理技术。文心一言更加注重…

mysql优化之explain 以及 索引优化

Mysql安装文档参考&#xff1a;https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字&#xff0c;MySQL 会在查询上设…

非关系型数据库Redis(缓存型数据库)

关系型数据库和非关系型数据库的区别 关系型数据库 是一个结构化的数据库&#xff0c;记录方式是行&#xff08;记录对象属性&#xff09;和列&#xff08;声明对象&#xff09; 表与表之间是有关联的&#xff0c;使用sql语句来对指定的表、库进行增删改查 在创建表的时候&…

hive sql 行列转换 开窗函数 炸裂函数

hive sql 行列转换 开窗函数 炸裂函数 准备原始数据集 学生表 student.csv 讲师表 teacher.csv 课程表 course.csv 分数表 score.csv 员工表 emp.csv 雇员表 employee.csv 电影表 movie.txt 学生表 student.csv 001,彭于晏,1995-05-16,男 002,胡歌,1994-03-20,男 003,周杰伦,…

Flutter 中数据存储的四种方式

在 Flutter 中&#xff0c;存储是指用于本地和远程存储和管理数据的机制。以下是 Flutter 中不同存储选项的概述和示例。 Shared Preferences&#xff08;本地键值存储&#xff09; Shared Preferences 是一种在本地存储少量数据&#xff08;例如用户首选项或设置&#xff09…

自压缩llm 为 超长记忆之随机编码(非进制编码)

自压缩llm 为 超长记忆之随机编码(非进制编码) 代码代码解析代码 # 自压缩llm 为 超长记忆 # prompt 格式 # <|细颗粒词表|><|粗颗粒词表|><|细颗粒词表|> # 细颗粒词表 = 词1,词2,词3,词4,词5,词6,词7,词8,词9,词10, # 组颗粒词表id1, 组颗…

buildadmin+tp8表格操作(7.1)表格的事件监听(el-table中的事件)

因为buildAdmin是封装的 el-table的组件&#xff0c;所以el-table中的事件&#xff0c; 也是可以使用的&#xff0c; 两者有几个事件是有共同的&#xff08;比如 双击事件&#xff09;&#xff0c; 这时可以根据自己的需要自行选择 以下代码是 buildadmin 使用 el-table中的事…

labview运行速度太慢

找到labview程序运行速度的瓶颈 - 百度文库 LabVIEW执行速度 - 北京瀚文网星科技有限公司 性能和内存信息窗口 必需&#xff1a;基础版开发系统 选择工具性能分析性能和内存&#xff0c;可显示该窗口。 该窗口用于采集和显示VI的执行时间和内存使用信息。如在不属于项目的…

用公式告诉你 现货黄金投资者要不要换策略?

看过笔者相关文章的朋友都知道&#xff0c;其实笔者是相当不鼓励投资者更改策略的。但这并不意味着&#xff0c;策略不能改或者换。之所以反对更改策略&#xff0c;是因为很多人对自己的策略还没上手&#xff0c;没了解清楚就急着换策略&#xff0c;这是没必要的。通过下面这个…