使用qt完善对话框功能
1、
完善登录框
点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。
如果账号和密码匹配,则弹出信息对话框,给出提示信息为“登录成功”,给出一个按钮ok,点击ok后,关闭整个登录界面,跳转到其他界面
点击取消按钮后,弹出问题对话框,询问是否确定要退出登录,给出两个按钮,yes|no,点击yes,则直接关闭整个登录界面,如果点击no则进行进行登录
要求:消息对话框,对象版和静态成员函数版至少各实现一个
mianwindow.h
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();signals:void jump(); //自定义跳转信号函数private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::MainWindow *ui;Second *s1; //定义另一个界面的指针
};
#endif // MAINWINDOW_H
second.h
#ifndef SECOND_H
#define SECOND_H#include <QDialog>namespace Ui {
class Second;
}class Second : public QDialog
{Q_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();public slots:void jump_slot(); //接收跳转信号的槽函数private:Ui::Second *ui;
};#endif // SECOND_H
mianwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);ui->label->setPixmap(QPixmap("D:\\QTtupian\\jimoaqing.gif"));ui->label->setScaledContents(true);ui->label_2->setPixmap(QPixmap("D:\\QTtupian\\zhanghao.jpg"));ui->label_2->setScaledContents(true);ui->label_3->setPixmap(QPixmap("D:\\QTtupian\\mima.jpg"));ui->label_3->setScaledContents(true);s1 = new Second; //给另一个界面实例化空间//将当前界面的信号,与s1界面的槽函数进行连接connect(this,&MainWindow::jump, s1, &Second::jump_slot);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{if(ui->lineEdit->text()=="admin"&&ui->lineEdit_2->text()=="123456"){//信息对话框QMessageBox box(QMessageBox::Question,"信息对话框","登录成功",QMessageBox::Ok,this);box.setDefaultButton(QMessageBox::Ok); //默认到ok上int ret = box.exec(); //运行对话框if(ret == QMessageBox::Ok){emit jump(); //发送跳转信息this->hide(); //将当前界面隐藏}}else{//错误对话框QMessageBox box(QMessageBox::Question,"错误对话框","账号密码不匹配,是否重新登录",QMessageBox::Ok|QMessageBox::Cancel,this);box.setDefaultButton(QMessageBox::Ok); //默认到ok上int ret = box.exec(); //运行对话框switch(ret){case QMessageBox::Ok:ui->lineEdit->clear(); //清楚账号密码内容ui->lineEdit_2->clear();break;case QMessageBox::Cancel://ret=box.close();break;}}}void MainWindow::on_pushButton_2_clicked()
{//问题对话框int ret = QMessageBox::question(this,"问题对话框","是否确定要退出登录",QMessageBox::Yes|QMessageBox::No,QMessageBox::No);switch(ret){case QMessageBox::Yes:this->close(); //关闭窗口break;case QMessageBox::No:break;}
}
second.cpp
#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QDialog(parent),ui(new Ui::Second)
{ui->setupUi(this);
}Second::~Second()
{delete ui;
}//接收跳转信号对应的槽函数
void Second::jump_slot()
{this->show(); //将自己界面进行展示
}
主函数
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}
2、思维导图

相关文章:
使用qt完善对话框功能
1、 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…...
Day 03 python学习笔记
位运算 基于二进制的运算(计算机的底层基于位运算) 计算机最小单位:bit (比特/位/二进制) 1byte(字节) 8bit ( 0000 0000) &:与 (全真为真,一假则…...
优化类问题概述
数学建模系列文章: 以下是个人在准备数模国赛时候的一些模型算法和代码整理,有空会不断更新内容: 评价模型(一)层次分析法(AHP),熵权法,TOPSIS分析 及其对应 PYTHON 实现代码和例题…...
第一个 Go 程序“hello,world“ 与 main 函数
第一个 Go 程序"hello,world" 与 main 函数 文章目录 第一个 Go 程序"hello,world" 与 main 函数一.创建“hello,world”示例程序二. “hello,world” 程序结构拆解三、main 函数四、Go 语言中程序是怎么编译…...
MySQL缓冲池Buffer Pool
前言 在应用系统中,为加速数据访问,会把高频的数据放在「缓存」(Redis、MongoDB)里,减轻数据库的压力。在操作系统中,为了减少磁盘IO,同时为了快速响应,引入了「缓冲池」(buffer pool)机制。 MySQL…...
springboot实现发送邮箱验证码
准备工作 在邮箱官网开放SMTP授权,获取相应密钥,才可以进行发送邮件 这里以网易163邮箱为例,登录邮箱后,依次点击“设置-POP3/SMTP/IMAP” ,然后开启SMTP服务。这时候会提示一个授权码,例如:H…...
ESP8266使用记录(三)
通过udp把mpu6050数据发送到PC端 /********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : ESP8266WiFiUdp_12 团队/Team : 太极创客团队 / Taichi-Maker (w…...
基于微信小程序的在线视频课程学习平台设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言用户微信端的主要功能有:管理员的主要功能有:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉…...
CloudCompare 二次开发(15)——点云添加高斯噪声
目录 一、概述二、代码集成三、结果展示一、概述 不依赖任何第三方点云相关库,使用CloudCompare编程实现点云添加高斯噪声。添加高斯噪声的算法原理见:PCL 点云添加高斯噪声并保存。 二、代码集成 1、mainwindow.h文件public中添加: void doActionAddGassNoise(); //…...
一波免费、好用的API接口分享
全国快递物流地图轨迹查询:【H5物流轨迹、单号识别】通过物流单号和收寄件地址,自动评估物流时效,并在地图中展示包裹运输轨迹。包括顺丰、圆通、申通等主流快递公司。自动识别快递公司及单号,实时查询,稳定高效&#…...
Android App ~ LiveData
LiveData 两种更新数据方式 setValue(T value)postValue(T value) setValue()只能在主线程中调用,postValue()可以在任何线程中调用。 MutableLiveData 1.首先LiveData其实与数据实体类(POJO类)是一样的东西,它负责暂存数据. 2.其次LiveData其实也是一个观察者…...
全球第4大操作系统(鸿蒙)的软件后缀.hap
system exe 2022-12-01 04:38:38 首页 > 操作系统 145|0条评论 鸿蒙OS兼容已有安卓程序:这事不稀奇。 其实一个系统兼容另外系统的可执行程序并非新鲜事,比如linux下的wine和crossover可以兼容许多win系统的.exe程序。 作为回应,Wind…...
算法练习第六十四天
LCR 184. 设计自助结算系统 - 力扣(LeetCode) 总结:利用一个双端维护队列一个往后递减的队列,对头是最大值,每次进入一个新值时就一直和队尾元素比较将比新的值小的数排出,这样能保证留在队列中的数都是会…...
安卓系列机型 框架LSP 安装步骤 支持多机型 LSP框架通用安装步骤【二】
安卓玩机教程---全机型安卓4----安卓12 框架xp edx lsp安装方法【一】 低版本可以参考上个博文了解相关安装方法。 LSP框架优点 简单来说装lsp框架的优点在于可以安装各种模块。包括 但不限于系统优化 加速 游戏开挂等等的模块。大致相当于电脑的扩展油猴 Lspos…...
实现一个宽高自适应的正方形
.square {width: 10%;height: 10vw;background: tomato; }.square {width: 20%;height: 0;padding-top: 20%;background: orange; }.square {width: 30%;overflow: hidden;background: yellow; } .square::after {content: ;display: block;margin-top: 100%; }...
shell脚本命令
Shell命令是在类Unix操作系统中使用的命令行解释器(shell)中执行的命令。Shell命令可以用于执行系统命令、操作文件、进行文本处理、管理进程等。以下是一些常见的Shell命令: 1. ls:列出当前目录下的文件和文件夹。 2. cd&#x…...
Vue2023 面试归纳及复习(2)
1 vue3中的动态组件和KeepAlive组件 动态组件component <component>动态组件是一种可以根据数据变化而动态加载不同组件的方式。使用动态组件可以有效地减少代码复杂度,提高组件的复用性和灵活性。 动态组件通过一个特殊的属性is来实现动态加载,…...
idea 本地项目上传到 Git 步骤
第一步:菜单栏 VCS——>import into Version control——>Create git Repository——>弹出框找到选中自己项目——>点击Ok 第二步:选中项目右键 ——>git——>Add 文件会变成绿色表示成功 第三步:VCS——>commit——>ok 提交到…...
【从0学习Solidity】41. WETH
【从0学习Solidity】41. WETH 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发…...
微信小程序的无限瀑布流写法
微信小程序的无限瀑布流实现总算做完了,换了好几种方法,过程中出现了各种BUG。 首先官方有瀑布流的插件(Skyline /grid-view),不是原生的我就不想引入,因为我的方块流页面已经搭好了,引入说不定…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
