华清远见作业第四十一天——Qt(第三天)

思维导图:

编程

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

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

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

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

代码:

success.h

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

widge.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void my_jump(); //第一个界面信号的声明
public slots:   //槽函数权限 ,该权限下函数都是槽函数void my_slot(); //需要声明也要实现void my_slot1();
private slots:void on_But2_clicked();//第一个登录成功的//void on_But2_clicked2();//第一个登录失败的void on_But1_clicked();private:Ui::Widget *ui;};
#endif // WIDGET_H

main.cpp

#include "widget.h"
#include "success.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();success s;//手动连接QObject::connect(&w,&Widget::my_jump,&s,&success::my_jump_slot);return a.exec();
}

success.cpp

#include "success.h"
#include "ui_success.h"success::success(QWidget *parent) :QWidget(parent),ui(new Ui::success)
{ui->setupUi(this);
}success::~success()
{delete ui;
}
//第二个界面槽函数的实现
void success::my_jump_slot()
{this->show();//显示界面
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
#include<QMessageBox>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置密码显示ui->Edit2->setEchoMode(QLineEdit::Password);//设置占位ui->Edit1->setPlaceholderText("账号");ui->Edit2->setPlaceholderText("密码");//标签ui->lab1->setPixmap(QPixmap(":/pictrue/login.png"));ui->lab1->setScaledContents(true);ui->lab2->setPixmap(QPixmap(":/pictrue/passwd.jpg"));ui->lab2->setScaledContents(true);//手动连接槽函数qt5退出connect(ui->But1, &QPushButton::clicked, this, &Widget::on_But1_clicked);//使用手动连接qt5//connect(ui->But2,&QPushButton::clicked,this,&Widget::my_slot1);connect(ui->But2,&QPushButton::clicked,this,&Widget::on_But2_clicked);
}Widget::~Widget()
{delete ui;
}void Widget::my_slot()
{close();
}
void Widget::my_slot1()
{if(ui->Edit1->text()=="admin"){if(ui->Edit2->text()=="123456"){Widget::on_But2_clicked();}else{qDebug("%s","密码错误");qDebug("%s","登录失败");//  Widget::on_But2_clicked2();//登录失败的槽函数}}else{qDebug("%s","账号错误");qDebug("%s","登录失败");ui->Edit1->clear();ui->Edit2->clear();//清空}}void Widget::on_But2_clicked()
{if(ui->Edit1->text()=="admin" && ui->Edit2->text()=="123456"){//弹出信息对话框QMessageBox msg(QMessageBox::Information,   //对话图标"信息",   //对话框标题"登录成功",//提示文本QMessageBox::Ok,    //提供按钮this    //指定父组件);//调用exec()弹出对话框int ret=msg.exec();//根据用户的选择 执行不同的功能if(ret==QMessageBox::Ok){this->close();//关闭登录页面emit my_jump(); //触发第一个界面的信号}}else if(ui->Edit1->text()=="admin" && ui->Edit2->text()!="123456"){//调用QMessageBox的静态成员函数 弹出对话框int ret=QMessageBox::critical(this, //指定父组件"错误对话框","账号密码不匹配,是否重新登录?",QMessageBox::Yes|QMessageBox::No);if(ret==QMessageBox::Yes){ui->Edit2->clear();//清空密码}else{this->close();}}
}//void Widget::on_But2_clicked2()//登录失败的槽函数
//{//}void Widget::on_But1_clicked()
{QMessageBox MSG(QMessageBox::Question,"问题对话框","您是否确定退出登录",QMessageBox::Yes|QMessageBox::No,this);//调用exec()弹出对话框int ret=MSG.exec();if(ret==QMessageBox::Yes){this->close();}else if(QMessageBox::No) {this->show();}
}

运行效果:

登录成功

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

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

相关文章

C++容器map和set使用

map和set使用 mapmap的使用map的基本功能map的pair介绍map的[ ]介绍 map map是一种关联式容器&#xff0c;map的作用是将key和value一一对应的绑定在一起。用一个结构体pair将他们组合。 map的使用 map的三种插入模式 map<string, string> dist;// 插入方法1 显示构造…

C++力扣题目 647--回文子串 516--最长回文子序列

647. 回文子串 力扣题目链接(opens new window) 给定一个字符串&#xff0c;你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被视作不同的子串。 示例 1&#xff1a; 输入&#xff1a…

HTML5新婚、年会、各种聚会的现场抽奖活动(附源码)

文章目录 1.抽奖平台设计来源1.1 主界面效果1.2 抽奖效果1.3 中奖效果 2.效果和源码配置2.1 动态效果2.2 人员信息配置2.3 奖品信息配置2.4 抽奖音效配置2.5 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/deta…

数字滚动实现

介绍 vue-countup-v3 插件是一个基于 Vue3 的数字动画插件&#xff0c;用于在网站或应用程序中创建带有数字动画效果的计数器。通过该插件&#xff0c;我们可以轻松地实现数字的递增或递减动画&#xff0c;并自定义其样式和动画效果。该插件可以用于许多场景&#xff0c;例如展…

小程序生命周期解析(从概念、启动、运行、销毁到生命周期事件及场景的全面解析)

引言 在当今移动应用激烈竞争的时代&#xff0c;小程序作为一种轻量级、高效便捷的移动应用形式&#xff0c;逐渐成为用户和开发者的热门选择。小程序不仅以其小巧灵活的体积受到用户喜爱&#xff0c;更因为无需安装、即点即用的特性在移动应用领域取得了广泛的普及。随着小程…

MySQL运维实战(7.2) MySQL复制server_id相关问题

作者&#xff1a;俊达 主库server_id没有设置 主库没有设置server_id Got fatal error 1236 from master when reading data from binary log: Misconfigured master - server_id was not set主库查看server_id mysql> show variables like server_id; ----------------…

用友NC65与用友NCC对接集成NC65-凭证列表查询打通凭证新增

用友NC65与用友NCC对接集成NC65-凭证列表查询打通凭证新增 数据源平台:用友NC65 用友NC是为集团与行业企业提供的全线管理软件产品&#xff0c;由亚太本土最大的企业管理软件提供商用友公司研发提供&#xff0c;用友NC率先采用J2EE架构和先进开放的集团级开发平台UAP&#xff0…

【MATLAB源码-第144期】基于matlab的蝴蝶优化算法(BOA)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 ​蝴蝶优化算法&#xff08;Butterfly Optimization Algorithm, BOA&#xff09;是基于蝴蝶觅食行为的一种新颖的群体智能算法。它通过模拟蝴蝶个体在寻找食物过程中的嗅觉导向行为以及随机飞行行为&#xff0c;来探索解空间…

链表之“无头单向非循环链表”

目录 ​编辑 1.顺序表的问题及思考 2.链表 2.1链表的概念及结构 2.2无头单向非循环链表的实现 1.创建结构体 2.单链表打印 3.动态申请一个节点 3.单链表尾插 4.单链表头插 5.单链表尾删 6.单链表头删 7.单链表查找 8.单链表在pos位置之前插入x 9.单链表删除pos位…

入门Web自动化测试之Selenium+Python基础方法封装

之前我们讲过元素定位的配置管理&#xff0c;这一篇我们来学习封装内容。 封装 既然选择了Python这门语言来实现Web自动化&#xff0c;那我们就不得不讲到一个重要的概念&#xff0c;那就是面向对象编程理念中的封装。 就字面意思来理解的话&#xff0c;就像是把各种物品放入…

素数筛法详解:埃氏筛和欧拉筛

素数筛法详解&#xff1a;埃氏筛和欧拉筛-CSDN博客https://blog.csdn.net/GD_ONE/article/details/104660294/?ops_request_misc&request_id&biz_id102&utm_term%E5%9F%83%E5%BC%8F%E7%AD%9B%E6%B3%95&utm_mediumdistribute.pc_search_result.none-task-blog-…

【知识整理】Git Commit Message 规范

一. 概述 前面咱们整理过 Code Review 一文&#xff0c;提到了 Review 的重要性&#xff0c;已经同过gitlab进行CodeReview 的方式&#xff0c;那么本文详细说明一下对CodeReivew非常重要的Git Commit Message 规范。 我们在每次提交代码时&#xff0c;都需要编写 Commit Mes…