当前位置: 首页 > news >正文

QT_day3

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

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

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

第一个窗口头文件

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

源文件

#include "widget.h"
#include "form.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Form f;Widget::connect(&w,&Widget::my_signal,[&](){f.show();});return a.exec();
}

第一个窗口源文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_btn1_clicked()
{QString username = ui->lineEdit1->text();QString password = ui->lineEdit2->text();if(username == "admin" & password == "123456"){QMessageBox msg(QMessageBox::Information,"登录","登陆成功",QMessageBox::Ok);int res=msg.exec();if(res==QMessageBox::Ok){//发射登陆成功信号,在main连接到窗口2emit my_signal();this->close();}}else{QMessageBox msg2(QMessageBox::Warning,"登录","账号和密码不匹配",QMessageBox::Yes|QMessageBox::No);int res2=msg2.exec();if(res2==QMessageBox::No){this->close();}else{ui->lineEdit2->clear();}}
}void Widget::on_btn2_clicked()
{QMessageBox msg(QMessageBox::Question,"取消","您是否确认要退出登录?",QMessageBox::Yes|QMessageBox::No);int res=msg.exec();if(res==QMessageBox::Yes){this->close();}
}

1、登录界面

2、密码输错

2.1 选择yes

2.2 选择NO

直接退出

3、密码输入正确

4、点击取消

4.1 NO

4.2 Yes

直接退出

http://www.lryc.cn/news/339414.html

相关文章:

  • 使用ADO.NET访问数据库
  • SpringBoot的旅游管理系统+论文+ppt+免费远程调试
  • 数据结构---线性表
  • MySQL 8.0 字符集问题导致报错
  • 单路高清HDMI编码器JR-3211HD
  • 分库,分表,分区,分片
  • 【详解算法流程+程序】DBSCAN基于密度的聚类算法+源码-用K-means和DBSCAN算法对银行数据进行聚类并完成用户画像数据分析课设源码资料包
  • java es相关操作
  • 腾讯EdgeOne产品测评体验——开启安全防护,保障数据无忧
  • 机器视觉图形处理软件介绍
  • C# WinForm简介
  • 概念:CPU、内存、磁盘、Android内存分配
  • Vue 图片加载失败显示默认图片
  • 【Sentinel的限流使用】⭐️SpringBoot整合Sentinel实现Api的限流
  • 【示例】MySQL-SQL语句优化
  • QT 线程的使用
  • Python基于flask的豆瓣电影分析可视化系统
  • 【迅为iTOP-4412-linux 系统制作(4)】ADB 或者 TF 卡烧写测试
  • 阿里云对象存储OSS批量上传,单个上传,批量删除,单个删除!
  • Python的国际化和本地化【第162篇—国际化和本地化】
  • 播放Samba协议下的音视频文件
  • Excel全套213集教程
  • 【七 (1)指标体系建设-构建高效的故障管理指标体系】
  • Go gin框架(详细版)
  • Git分布式版本控制系统——Git常用命令(二)
  • LeetCode 59.螺旋矩阵II
  • 03-JAVA设计模式-适配器模式
  • MVVM架构模式
  • leetcode2924--找到冠军II
  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记13:RTC实时时钟