QT:信号与槽

作业:

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

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

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

second.h

#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class Second;
}class Second : public QWidget
{Q_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();
public slots:void jump_slot();private:Ui::Second *ui;
};#endif // SECOND_H

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 jump();//signal函数不用实现private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

main.cpp

#include "widget.h"
#include "second.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Second s;QObject::connect(&w,&Widget::jump,&s,&Second::jump_slot);return a.exec();
}

second.cpp

#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QWidget(parent),ui(new Ui::Second)
{ui->setupUi(this);this->setAttribute(Qt::WA_TranslucentBackground);//去掉空白
}Second::~Second()
{delete ui;
}void Second::jump_slot()
{//显示界面this->show();
}

widget.cpp

#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_pushButton_clicked()
{
if(ui->lineEdit->text()=="admin"&&ui->lineEdit2->text()=="123456"){QMessageBox msg(QMessageBox::Question,"登录成功","是否继续?",QMessageBox::Yes|QMessageBox::No);int ret=msg.exec();if(ret==QMessageBox::Yes){//跳转到第二个界面this->close();emit jump();}elsemsg.close();
}
else {QMessageBox msg(QMessageBox::Question,"登录失败","是否继续?",QMessageBox::Yes|QMessageBox::No);int ret=msg.exec();if(ret==QMessageBox::Yes){}else if(ret==QMessageBox::No)this->close();
}
}void Widget::on_pushButton_2_clicked()
{QMessageBox msg(QMessageBox::Question,"退出登录","是否继续?",QMessageBox::Yes|QMessageBox::No);int ret=msg.exec();if(ret==QMessageBox::Yes){this->close();}}

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

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

相关文章

使用axios进行前后端数据传输

最近在和朋友合作写一个新的项目&#xff0c;前后端进行了分离&#xff0c;既然是分离的&#xff0c;肯定需要交互&#xff0c;今天这篇文章详细介绍一下数据交互的一种常见方式&#xff1a;使用axios,希望对大家有所帮助。 前端&#xff1a;以LoginPage.vue登录页面为例&…

HarmonyOS实战开发-如何实现电话服务中发送短信的功能。

介绍 本示例使用ohos.telephony.sms 接口展示了电话服务中发送短信的功能。 效果预览 使用说明&#xff1a; 首页点击创建联系人&#xff0c;弹框输入联系人姓名和电话&#xff0c;点击确定按钮后&#xff0c;联系人列表中添加该联系人;点击管理&#xff0c;该按钮变成取消&…

同步压缩理论

参考 在频率方向进行能量重新分配&#xff08;分配到中心&#xff09; 时频重排

【Rust】——改进I/O项目

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

【算法基础】选择排序与冒泡排序的思想与实现

文章目录 1. 选择排序1.1 思想1.2 实现 2. 冒泡排序2.1 思想2.2 实现 1. 选择排序 1.1 思想 选择排序的思想很简单&#xff0c;如上图所示。在每一次遍历子数组的过程中&#xff0c;选择最小的和子数组的第一位交换。子数组的选择从一开始的整个数组&#xff0c;到后面范围逐渐…

C++的stack和queue类(一):适配器模式、双端队列与优先级队列

目录 基本概念 适配器模式 stack.h test.cpp 双端队列-deque 仿函数 优先级队列 基本概念 1、stack和queue不是容器是容器适配器&#xff0c;它们没有迭代器 2、stack的quque的默认容器是deque&#xff0c;因为&#xff1a; stack和queue不需要遍历&#xff0…

保姆级教程带你实现HarmonyOS手语猜一猜元服务(三)

&#x1f680;四、元服务代码分析 &#x1f50e;1.元服务代码结构介绍 AppScope中存放应用全局所需要的资源文件。entry是应用的主模块&#xff0c;存放HarmonyOS应用的代码、资源等。oh_modules是工程的依赖包&#xff0c;存放工程依赖的源文件。build-profile.json5是工程级…

FreeRTOS学习 -- FreeRTOSConfig.h介绍

一、FreeRTOSConfig.h文件 FreeRTOS 的系统配置文件为 FreeRTOSConfig.h&#xff0c;在此配置文件中可以完成 FreeRTOS 的裁剪和配置。 /*FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.All rights reservedVISIT http://www.FreeRTOS.org TO ENSURE YOU AR…

Android Studio修改项目包名

1.第一步&#xff0c;项目结构是这样的&#xff0c;3个包名合在了一起&#xff0c;我们需要把每个包名单独展示出来 2.我们点击这个 取消选中后的包名结构是这样的&#xff0c;可以看到&#xff0c;包名的每个文件夹已经展示分开了&#xff0c;现在我们可以单独对每个包名文件夹…

Linux 中断处理

一、基本概念 1、中断及中断上下文 中断是一种由硬件设备产生的信号&#xff0c;不同设备产生的中断通过中断号来区分。CPU在接收到中断信号后&#xff0c;根据中断号执行对应的中断处理程序&#xff08;Interrupt Service Routine&#xff09; 内核对异常和中断的处理类似&a…

Linux mount用法

在Linux系统中&#xff0c;系统自动挂载了以下挂载点&#xff1a; /: xfs文件系统&#xff0c;根文件系统, 所有其他文件系统的挂载点。 /sys: sysfs文件系统&#xff0c;提供内核对象的信息和接口。 /proc: proc文件系统&#xff0c;提供进程和系统信息。 /dev: devtmpfs文件系…

qlabel 跑马灯

就是简单的定时器➕qlabel实现&#xff0c;思路&#xff1a;每一秒钟&#xff0c;把label上最右边的文字切下来&#xff0c;然后放在最左边&#xff0c;这样不断切&#xff0c;就相当于是文字轮转了

localhost 与 127.0.0.1 在本地开发中有什么区别

在进行前端开发时&#xff0c;我们经常使用localhost&#xff0c;只需运行npm run就能在浏览器中打开网页&#xff0c;地址栏显示类似于http://localhost:xxx/index.html&#xff0c;但是很多人并不了解更深层次的原理&#xff0c;不知道 localhost 与 127.0.0.1 到底有什么区别…

C++_priority_queue的学习

1.概述 1. 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的 2. 类似于堆&#xff0c;在堆中可以随时插入元素&#xff0c;并且只能检索最大堆元素 ( 优先队列中位于顶部的元 素 ) 3. 优先队列被实现为容器…

2024年商家争相入驻视频号小店,究竟有什么吸引力,新契机?

大家好&#xff0c;我是电商花花。 直播电商作为一种直观、生动的媒体形式&#xff0c;已经深入人心。 通过达人直播带货&#xff0c;短视频带货&#xff0c;商家可以更直观地向消费者展示产品&#xff0c;提升销售效果。 同时&#xff0c;视频号小店的开通&#xff0c;使得…

前端三剑客 —— JavaScript (第七节)

内容回顾 DOM编程 document对象 有属性 有方法 节点类型 元素节点 属性节点 文本节点 操作DOM属性 DOM对象.属性名称 DOM对象[属性名称] 调用DOM对象的API 操作DOM样式 获取有单位的样式值 标签对象.style.样式名称&#xff0c;这种方式只能操作行内样式。 使用getComputedSty…

vue3中的复制功能怎么做

很简单&#xff0c;比如想要复制p标签里面的1111&#xff0c;给他一个点击事件&#xff0c;然后加上navigator.clipboard.writeText即可完成。 说明&#xff1a; ​​​​​​​ navigator.clipboard 是 Web API 中的一个对象&#xff0c;它提供了对剪贴板的访问权限&…

创业公式(保罗·格雷厄姆)

保罗格雷厄姆有一套完整的创业哲学&#xff0c;他的创业公式是&#xff1a; &#xff08;1&#xff09;搭建原型 &#xff08;2&#xff09;上线运营&#xff08;别管bug&#xff09; &#xff08;3&#xff09;收集反馈 &#xff08;4&#xff09;调整产品 &#xff08;5&…

【ZZULIOJ】1050: 阶乘的累加和(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 求1! 2! ……n! 输入 输入一个整数n&#xff0c;你可以假定n不大于10。 输出 输出一个整数&#xff0c;即阶乘累加的结果&#xff0c;单独占一行。 样例输入 Copy 4 样例输出 Copy 33 co…

基于51单片机的DAC0832锯齿波产生设计

**单片机设计介绍&#xff0c; 基于51单片机的DAC0832锯齿波产生设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的DAC0832锯齿波产生设计是一个结合了硬件与软件技术的项目&#xff0c;旨在利用51单片机和DAC08…