4.9QT

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

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

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

要求:基于属性版实现对话框的弹出

main.cpp

#include "widget.h"
#include "form.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Form f;//连接窗口1的信号函数和窗口2打开的lambda函数Widget::connect(&w,&Widget::login,[&](){f.show();});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);this->setWindowFlag(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground);this->setWindowTitle("原神启动");this->setWindowIcon(QIcon(":/Logo/p.jpg"));
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{if(ui->lineEdit->text()=="admin"&&ui->lineEdit_2->text()=="123456"){QMessageBox msg(QMessageBox::Information,"登录","登陆成功",QMessageBox::Ok);int res=msg.exec();if(res==QMessageBox::Ok){//发射登陆成功信号,在main连接到窗口2emit login();this->close();}}else{QMessageBox msg2(QMessageBox::Warning,"登录","账号和密码不匹配",QMessageBox::Yes|QMessageBox::No);int res2=msg2.exec();if(res2==QMessageBox::No){this->close();}else{this->ui->lineEdit->clear();this->ui->lineEdit_2->clear();}}
}void Widget::on_but2_clicked()
{QMessageBox msg(QMessageBox::Question,"取消","您是否确认要退出登录?",QMessageBox::Yes|QMessageBox::No);int res=msg.exec();if(res==QMessageBox::Yes){this->close();}
}

widget.h

#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 login();private slots:void on_pushButton_clicked();void on_but2_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

form.cpp

#include "form.h"
#include "ui_form.h"Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form),speecher(new QTextToSpeech(this))
{ui->setupUi(this);this->setWindowFlag(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground);
}Form::~Form()
{delete ui;
}
void Form::on_pushButton_4_clicked()
{this->close();
}void Form::on_pushButton_clicked()
{speecher->say(ui->pushButton->text());
}void Form::on_pushButton_2_clicked()
{speecher->say(ui->pushButton_2->text());
}void Form::on_pushButton_3_clicked()
{speecher->say(ui->pushButton_3->text());
}

form.h

#ifndef FORM_H
#define FORM_H#include <QWidget>
#include <QTextToSpeech>
namespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTpublic:explicit Form(QWidget *parent = nullptr);~Form();
private slots:void on_pushButton_4_clicked();void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();private:Ui::Form *ui;QTextToSpeech *speecher;
};#endif // FORM_H

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

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

相关文章

Houdini笔记操作技巧_集锦

个人记录下&#xff0c;谨防遗忘。同时丰富下Hou的中文搜素环境。 1、自定义启动界面 ① 设置完界面后&#xff0c;保存自定义界面&#xff08;Save Current Desktop As...&#xff09; ② Edit-->Preferences-->General UIInterface-->Startup in Desktop&#xff1…

【redis基础01】数据结构-通用命令、String、Hash、List、Set

目录 1 通用命令1.1 keys 检索匹配特定模式的所有键1.2 del 删除指定的key1.3 exists 判断key是否存在1.4 expire 给key设定有效期1.5 ttl 查看key的剩余有效期1.6 key的层级格式 2 String类型2.1 set&get2.2 mset&mget 批量操作2.3 incr&incrbyfloat 自增2.4 setn…

数据结构之树的性质总结

节点的度&#xff1a;该节点拥有的孩子个数 叶子节点&#xff1a;度为0的节点 层数&#xff1a;根节点为第一层&#xff0c;根的子节点为第二层&#xff0c;以此类推 所有树的性质&#xff1a;所有节点的总度数等于节点数减一 完全m叉树性质 完全m 叉树&#xff0c;节点的…

AI预测福彩3D第32弹【2024年4月10日预测--第7套算法开始计算第5次测试】

今天咱们继续进行进行第7套算法的测试&#xff0c;今天是第5次测试&#xff0c;昨天7码大方案错过&#xff0c;四码小方案直选命中&#xff0c;组选命中。这套算法的目标是争取稳定7码方案中的第一套方案&#xff0c;争取四码小方案的命中率达到50%(十期命中5期&#xff0c;目前…

C# 操作PDF表单 - 创建、填写、删除PDF表单域

通常情况下&#xff0c;PDF文件是不可编辑的&#xff0c;但PDF表单提供了一些可编辑区域&#xff0c;允许用户填写和提交信息。PDF表单通常用于收集信息、反馈或进行在线申请&#xff0c;是许多行业中数据收集和交换的重要工具。 PDF表单可以包含各种类型的输入控件&#xff0…

实验1 eNSP安装与使用

实验1 eNSP安装与使用 一、 原理描述二、 实验目的三、 实验内容四、 实验步骤1.下载并安装eNSP2.eNSP软件界面3.搭建并运行网络拓扑4. Wireshark 捕获分组并分析 一、 原理描述 eNSP&#xff08;Enterprise Network Simulation Platform&#xff09;是由华为提供的免费网络模…

LeetCode:1702. 修改后的最大二进制字符串(贪心 Java)

目录 1702. 修改后的最大二进制字符串 题目描述&#xff1a; 实现代码与解析&#xff1a; 贪心 原理思路&#xff1a; 1702. 修改后的最大二进制字符串 题目描述&#xff1a; 给你一个二进制字符串 binary &#xff0c;它仅有 0 或者 1 组成。你可以使用下面的操作任意次对…

ES6:promise基本使用讲解

一、Promis简介 1.是什么 Promise 是异步编程的一种解决方案。在ES6中&#xff0c;promise对象是一个构造函数&#xff0c;用来生成promise实例。 2.为什么需要promise 在出现promise之前&#xff0c;JS没有一个统一的、标准的异步编程模式&#xff0c;各种库和框架各自采用…

idea中jdk版本的配置

配置JDK版本的步骤如下&#xff1a; 下载JDK安装文件&#xff1a;首先&#xff0c;需要从Oracle官方网站&#xff08;https://www.oracle.com/java/technologies/javase-jdk8-downloads.html&#xff09;下载适合您操作系统的JDK版本。 安装JDK&#xff1a;双击下载的安装文件…

什么是 DNS 记录?

DNS记录是存储在DNS服务器上的文本指令。它们表明与一个域名相关的IP地址&#xff0c;也可以提供其他信息。DNS记录是计算机用语&#xff0c;指域名系统&#xff08;Domain Name System&#xff0c;简称DNS&#xff09;中的一条记录&#xff0c;这条记录存储于DNS服务器中。每一…

【LeetCode热题100】【二叉树】翻转二叉树

题目链接&#xff1a;226. 翻转二叉树 - 力扣&#xff08;LeetCode&#xff09; 就是交换两颗子树&#xff0c;二叉树都递归就行 class Solution { public:TreeNode *invertTree(TreeNode *root) {if (!root)return nullptr;swap(root->left, root->right);invertTree(…

全自动ai生成视频源码,利用AI大模型,一键生成高清短视频

MoneyPrinterTurbo-基于Python全自动ai生成视频源码&#xff0c;利用AI大模型&#xff0c;一键生成高清短视频&#xff0c;只需提供一个视频 主题 或 关键词 &#xff0c;就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐&#xff0c;然后合成一个高清的短视频。 地…

QT 线程的使用

1.头文件&#xff1a; #include<QThread> 2.在.h文件中定义全局&#xff1a; QThread* threadTraj; void threadTrajProcess();//回调函数 3.在.cpp文件中&#xff1a; threadTraj new QThread();//初始化 //连接槽函数 QObject::connect(threadTraj, &QThre…

15:00面试,15:08就出来了,技术官问我什么是K8s的命令式和声明式资源管理!

15:00面试&#xff0c;15:08就出来了&#xff0c;技术官问我什么是K8s的命令式和声明式资源管理&#xff01; Kubernetes&#xff08;通常缩写为K8s&#xff09;是一个强大的容器编排系统&#xff0c;它允许开发者和运维团队以可伸缩、灵活的方式部署和管理应用程序。在Kubern…

redis bigKey问题

bigKey的产生 1、使用String存储了大文件的二进制。 2、使用集合没有考虑到数据的规模&#xff0c;或者规模的增长。 3、哈希中冗余了大量键值对。 bigKey问题 1、操作大key时会阻塞线程&#xff1a;redis是单线程。 2、网络阻塞&#xff1a;在网络中占用大量网络流量。 …

【Java】maven对项目的拆分聚合

把mvc项目进行拆分,原来是通过包名进行分层的,现在再Maven项目里,我们可以通过Maven工具,进一步的拆分,怎么分呢? 把Dao层,Service层,Controller和View层的代码,各自拆分成一个一个的表现上独立的工程来。 拆分后的工程分别是&#xff1a;mvc-dao , mvc-service , mvc-web 三…

【示例】Spring-AOP理解

前言 本文不仅介绍Spring中AOP的几种实现方式。还整体介绍一下&#xff1a;静态代理、JDK API动态代理和CGLIB动态代理 文中示例的代码地址&#xff1a; GitHubhttps://github.com/Web-Learn-GSF/Java_Learn_Examples父工程Java_Framework_Spring 静态代理、动态代理*2 他…

c++ - 运算符重载

文章目录 一、运算符重载的关键字和注意点二、重载 运算符三、重载 运算符四、重载 运算符五、重载前置 和 后置 运算符六、重载 << >>运算符 一、运算符重载的关键字和注意点 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函…

CANFD通讯数据64字节,强制成结构体类型的做法---用C语言

在处理通信数据时&#xff0c;特别是当数据按照特定结构体的布局在网络上传输时&#xff0c;你可能需要将接收到的字节流转换为相应的结构体类型。这里是如何在C语言中强制将接收到的64字节数据转换为结构体类型的一个示例&#xff1a; #include <stdio.h> #include <…

【JavaEE】浅谈线程(一)

线程 前言线程的由来线程是什么线程的属性线程更高效的原因举个例子&#xff08;线程便利性的体现&#xff09; 多线程代码线程并发执行的代码jconsole(观测多线程) 线程的调度问题创建线程的几种方法1&#xff09;通过继承Thread 重写run2&#xff09;使用Runnable接口 重写ru…