0110qt

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

 ok_after.h:

#ifndef OK_AFTER_H
#define OK_AFTER_H#include <QWidget>namespace Ui {
class ok_after;
}class ok_after : public QWidget
{Q_OBJECTpublic:explicit ok_after(QWidget *parent = nullptr);~ok_after();
public slots:void ok_signal_slot(); //ok_after界面的槽函数,需要实现
private:Ui::ok_after *ui;
};#endif // OK_AFTER_H

widget.h:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>//调试类
#include <QMessageBox>//消息对话框类QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
signals:void ok_signal();//登录对话框信号,无需实现private:Ui::Widget *ui;
public slots:void cancel_btn_slot();void login_btn_slot();
private slots:void on_login_btn_clicked();
};
#endif // WIDGET_H

main.cpp:

#include "widget.h"
#include "ok_after.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();//实例化Ok_after对象ok_after ok;//将widget和ok_after两个界面连接QObject::connect(&w,&Widget::ok_signal,&ok,&ok_after::ok_signal_slot);return a.exec();
}

ok_after.cpp:

#include "ok_after.h"
#include "ui_ok_after.h"ok_after::ok_after(QWidget *parent) :QWidget(parent),ui(new Ui::ok_after)
{ui->setupUi(this);
}ok_after::~ok_after()
{delete ui;
}void ok_after::ok_signal_slot()
{this->show();//展示ok_after界面"hello,world"
}

widget.cpp:

#include "widget.h"
#include "ui_widget.h"
#include "ok_after.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置大标签图片ui->lab->setPixmap(QPixmap(":/picture/logo.png"));//设置图片自适应标签大小ui->lab->setScaledContents(true);//设置账户标签ui->useName_lab->setPixmap(QPixmap(":/picture/login.png"));ui->useName_lab->setScaledContents(true);//设置密码标签ui->passwd_lab->setPixmap(QPixmap(":/picture/passwd.png"));ui->passwd_lab->setScaledContents(true);//设置密码行编辑器ui->passwd_Edit->setEchoMode(QLineEdit::Password);//使用手动连接,将取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数connect(ui->cancel_btn,SIGNAL(clicked()),this,SLOT(cancel_btn_slot()));//将登录按钮使用qt5版本的连接到自定义的槽函数中connect(ui->login_btn,&QPushButton::clicked,this,&Widget::login_btn_slot);}Widget::~Widget()
{delete ui;
}//qt4版本自定义的槽函数,(取消按钮)
void Widget::cancel_btn_slot()
{//基于属性版本的有参构造函数QMessageBox mes(QMessageBox::Question,"cancel","您是否确定要退出登录?",QMessageBox::Yes|QMessageBox::No,this);//调用exec()弹出取消对话框int ret=mes.exec();if(ret==QMessageBox::Yes){this->close();//关闭登录界面}else if(ret==QMessageBox::No){}}
//qt5版本自定义的登录对话框对应的槽函数
void Widget::login_btn_slot()
{//账户和密码匹配成功if(ui->useName_Edit->text()=="admin" && ui->passwd_Edit->text()=="123456"){//基于属性版本的有参构造函数QMessageBox msg(QMessageBox::NoIcon,"login","登录成功",QMessageBox::Ok,this);//调用exec()弹出对话框int ret=msg.exec();if(ret==QMessageBox::Ok){this->close();//关闭登录界面emit this->ok_signal();//跳转到其他页面}}else//账户和密码匹配失败{//静态成员函数版int res=QMessageBox::information(this,"error","账号和密码不匹配,是否重新登录?",QMessageBox::Yes | QMessageBox::No);if(res==QMessageBox::Yes){//清除密码框中的内容ui->passwd_Edit->clear();}else if(res==QMessageBox::No){this->close();}}
}

登录成功现象:

点击ok之后

 登陆失败:

 点击yes后清空密码框:

 按下取消按钮之后的现象:

 qt-day3 - 幕布

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

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

相关文章

RK3568平台 平台总线模型Platform

一.平台总线模型介绍 编写了一个独立的驱动程序&#xff0c;但这样编写出来的驱动程序在重用性和可移植性上是很低的&#xff0c;无论之后要编写一个同类型的驱动还是将该驱动更换一个平台&#xff0c;都要花费时间重新修改驱动代码&#xff0c;而驱动的分离和分层这一软件思路…

Pytorch基础:数据读取与预处理——图像读取与存储

Pytorch基础&#xff1a;数据读取与预处理——图像读取与存储 1.读取图片2. 使用 matplotlib 库显示和保存图像 1.读取图片 图像库 opencv-python、imageio、PIL 等都具有图像读取的功能。 (base) PS C:\Users\阳> conda activate yang (yang) PS C:\Users\阳> python …

【angular教程240109】06 Angular父子组件以及非父子组件之间通讯

【angular教程240109】06 Angular父子组件以及组件之间通讯 目录&#xff1a; 【angular教程240109】06 Angular父子组件以及组件之间通讯一、子组件获取父组件的数据、执行子组件的方法 父组件给子组件传值-input1子组件 二、子组件通过Output 结合事件驱动实现组件通讯1 子组…

onlyOffice实践-在线协同word、ppt、excel编辑

一、x86 安装docker 18.09.0版本及以上&#xff08;我的版本是18.09.0&#xff09;配置docker阿里源&#xff0c;下载国外的镜像加速&#xff08;参考docker的常规使用总结-CSDN博客&#xff09;docker search 186184848/documentserver选择对应的破解版本下载&#xff08;这个…

脚本编程游戏引擎会遇到哪些问题

在游戏开发中&#xff0c;脚本编程已经成为了一种非常常见的方式&#xff0c;用来实现游戏逻辑和功能。但是脚本编程游戏引擎也可能会面临一些挑战和问题。下面简单的探讨一下都会遇到哪些问题&#xff0c;并且该如果做。 性能问题 脚本语言通常需要运行时解释执行&#xff0…

Android 自动滚动的RecyclerView,手动滑动和自动滑动无缝斜街,手动滑动时数据不重复

概要 做一个自动滑动的列表&#xff0c;用于展示聊天记录或者通知栏信息等&#xff0c;还是使用主流的RecyclerView来做。网上有很多案例&#xff0c;但当手动滑动时会一直无限循环&#xff0c;数据重复的出现&#xff0c;如果想要自动滑动时能无限循环&#xff0c;手动滑动时又…

端到端自动驾驶

自动驾驶主要流程&#xff1a;感知->预测->规划 预测是预测周围目标&#xff08;车、行人、动物等&#xff09;的轨迹&#xff0c;规划是规划自车的运动轨迹。 UniAD[CVPR 2023]: 使用transformer架构&#xff0c;统一自动驾驶流程&#xff0c;完成所有检测&#xff0c…

Springboot对接ceph集群以及java利用s3对象网关接口与ceph集群交互

springboot中引入相关依赖 <dependency><groupId>software.amazon.awssdk</groupId><artifactId>regions</artifactId><version>2.22.13</version></dependency><dependency><groupId>software.amazon.awssdk<…

【Kafka-3.x-教程】-【六】Kafka 外部系统集成 【Flume、Flink、SpringBoot、Spark】

【Kafka-3.x-教程】专栏&#xff1a; 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

Pycharm 重命名SSH的conda解释器后,提示该解释器不可用

结论 目前已知是BUG&#xff0c;截至投稿日未修复已经提交给youtrack.jetbrains.com&#xff0c;如下图&#xff1a; 解决方法&#xff0c;待更新…

monorepo工程开发交互nodejs命令行程序

前言 [MixedCli](https://zhangfisher.github.io/mixed-cli/)为monorepo应用开发命令行程序提供了一套解决方案&#xff0c;提供了更加友好的命令行开发体验。 第1步&#xff1a;创建工程 以一个典型的monorepo为例开始&#xff1a; flexapppackagescli corevuereact示例…

如何给AVR16芯片解锁

AVRM16核心板本身集成了强大的芯片自解锁功能模块&#xff0c;当由于熔丝位设置错误&#xff0c;导致芯片锁死&#xff0c;无法正常使用时候&#xff0c;可以利用畅学AVR16核心板上的解锁功能给芯片解锁。 &#xff08;如果芯片没有锁死&#xff0c;可以跳过此步骤&#xff09…

ffmpeg解码音频planar模式和packed模式

转载&#xff1a;原文地址&#xff1a; FFmpeg连载4-音频解码-阿里云开发者社区ffmpeg连载系列https://developer.aliyun.com/article/1197520 导读 前面我们介绍了使用FFmpeg解码视频&#xff0c;今天我们使用FFmpeg解码音频。我们的目标将mp4中的音频文件解码成PCM数据&…

python 文本内容随机生成器

这段代码是一个用于生成指定长度的随机文本的函数。主要包括两个函数&#xff1a;generate_text()和generate_other_content()。 generate_text(original_text, length)函数接受两个参数&#xff1a;原始文本和生成文本的长度。该函数的作用是根据原始文本生成指定长度的文本。…

Java异常及网络编程

异常续 throws关键字 当一个方法中使用throw抛出一个非RuntimeException的异常时&#xff0c;就要在该方法上使用throws声明这个异常的抛出。此时调用该方法的代码就必须处理这个异常&#xff0c;否则编译不通过。 package exception; ​ /*** 测试异常的抛出*/ public clas…

【普中开发板】基于51单片机的简易密码锁设计( proteus仿真+程序+设计报告+讲解视频)

基于51单片机的简易密码锁设计 1.主要功能&#xff1a;资料下载链接&#xff1a; 实物图&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单 【普中】基于51单片机的简易密码锁设计 ( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus8.16(有低版本) 程…

vue知识-04

计算属性computed 注意&#xff1a; 1、计算属性是基于它们的依赖进行缓存的 2、计算属性只有在它的相关依赖发生改变时才会重新求值 3、计算属性就像Python中的property&#xff0c;可以把方法/函数伪装成属性 4、computed: { ... } 5、计算属性必须要有…

css的一些属性

我们在写项目的时候&#xff0c;会遇到多种多样的样式&#xff0c;大部分都是由css来实现的&#xff0c;css可以让我们的页面更美观&#xff0c;css通常是配合HTML使用&#xff0c;代码较为简单! 下面我就给大家举几个较为常用的一些css属性。 1.CSS中怎样让元素圆角化&#…

【从零开始学习微服务 | 第一篇】什么是微服务

目录 前言&#xff1a; 架构风格&#xff1a; 单体架构&#xff1a; 分布式架构&#xff1a; 微服务&#xff1a; 总结&#xff1a; 前言&#xff1a; 在当今快速发展的软件开发领域&#xff0c;构建大型应用程序已经成为一项巨大的挑战。传统的单体应用架构往往难以满足…

未完成销量任务的智己汽车突发大规模车机故障,竞争压力不小

2024年刚开年&#xff0c;智己汽车便上演了一出“开门黑”。 近日&#xff0c;不少车主在社交平台发帖&#xff0c;反映智己LS6出现大规模车机故障&#xff0c;包括但不限于主驾驶屏幕不显示车速、档位、行驶里程&#xff0c;左右转盲区显示失效&#xff0c;无转向灯、雷达提醒…