QT-day2

完善登录框

点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。

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

点击取消按钮后,弹出问题对话框,询问是否确定要退出登录,给出两个按钮,yes|no,点击yes,则直接关闭整个登录界面,如果点击no则进行进行登录

要求:消息对话框,对象版和静态成员函数版至少各实现一个

加载资源文件

mywnd.h

#ifndef MYWND_H
#define MYWND_H#include <QWidget>
#include <QMessageBox>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QDebug>class MyWnd : public QWidget
{Q_OBJECTsignals:void my_signal();void  jumpsignal();public:MyWnd(QWidget *parent = nullptr);~MyWnd();private slots:void  loginbton1_clicked();void  cancelbton2_clicked();private:QPushButton *bton1;QPushButton *bton2;QLineEdit *edit1;QLineEdit *edit2;QLabel *lab1;QLabel *lab2;QLabel *lab3;};
#endif // MYWND_H

second.h

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

main.cpp

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

mywnd.cpp

#include "mywnd.h"
#include <iostream>
#include <QDebug>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>MyWnd::MyWnd(QWidget *parent): QWidget(parent)
{this->setFixedSize(400,350);this->setWindowTitle("Widget");this->setWindowIcon(QIcon(":/icon/wodepeizhenshi.png"));QLabel *lab1 = new QLabel(this);lab1->resize(400,150);lab1->setPixmap(QPixmap(":/icon/logo.png"));lab1->setScaledContents(true);QLabel *lab2 = new QLabel(this);lab2->resize(60,55);lab2->move(75,160);lab2->setPixmap(QPixmap(":/icon/userName.jpg"));lab2->setScaledContents(true);QLabel *lab3 = new QLabel(this);lab3->resize(60,55);lab3->move(lab2->x(),lab2->y()+65);lab3->setPixmap(QPixmap(":/icon/passwd.jpg"));lab3->setScaledContents(true);QLineEdit *edit1 = new QLineEdit("admin",this);edit1->resize(200,55);edit1->move(lab2->x()+65,lab2->y());QLineEdit *edit2 = new QLineEdit("123456",this);edit2->resize(200,55);edit2->move(lab3->x()+65,lab3->y());edit2->setEchoMode(QLineEdit::Password);QPushButton *bton1 = new QPushButton(QIcon(":/icon/login.png"),"登录",this);bton1->resize(90,55);bton1->move(edit2->x()+20,edit2->y()+65);QPushButton *bton2 = new QPushButton(QIcon(":/icon/cancel.png"),"取消",this);bton2->resize(90,55);bton2->move(bton1->x()+105,bton1->y());connect(bton1,&QPushButton::clicked,this,&MyWnd::loginbton1_clicked);connect(bton2,&QPushButton::clicked,this,&MyWnd::cancelbton2_clicked);}void  MyWnd::loginbton1_clicked()
{if(edit1->text()=="admin"&&edit2->text()=="123456"){QMessageBox sucbox(QMessageBox::Information,"登录","登录成功",QMessageBox::Ok,this);int ret = sucbox.exec();if(ret == QMessageBox::Ok){this->close();emit jumpsignal();}}else{QMessageBox errbox(QMessageBox::NoIcon,"登录","账号密码不匹配,是否重新登录",QMessageBox::Ok|QMessageBox::Cancel,this);int ret = errbox.exec();if(ret == QMessageBox::Ok){edit2->clear();}else if(ret == QMessageBox::Cancel){this->close();}}
}void MyWnd::cancelbton2_clicked()
{int ret = QMessageBox::question(this,"取消","是否确定要退出登录",QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);if(ret == QMessageBox::Yes){this->close();}
}MyWnd::~MyWnd()
{
}

second.cpp

#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QWidget(parent),ui(new Ui::Second)
{ui->setupUi(this);
}Second::~Second()
{delete ui;
}
void Second::jump_slot()
{this->show();
}

测试结果

思维导图

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

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

相关文章

Android 启动优化案例:WebView非预期初始化排查

去年年底做启动优化时&#xff0c;有个比较好玩的 case 给大家分享下&#xff0c;希望大家能从我的分享里 get 到我在做一些问题排查修复时是怎么看上去又low又土又高效的。 1. 现象 在我们使用 Perfetto 进行app 启动过程性能观测时&#xff0c;在 UI 线程发现了一段 几十毫…

ruoyi框架修改左侧菜单样式

菜单效果 ruoyi前端框架左侧的菜单很丑&#xff0c;我们需要修改一下样式&#xff0c;下面直接看效果。 修改代码 1、sidebar.scss .el-menu-item, .el-submenu__title {overflow: hidden !important;text-overflow: ellipsis !important;white-space: nowrap !important;//…

Docker核心原理与实操

第一章、Docker基本概念 1、概念&#xff1a;Docker是一种容器技术&#xff0c;可以解决软件跨环境迁移问题。 2、实现原理&#xff1a;是一个分层复用的文件系统&#xff1b;每一层都是一个独立的软件&#xff1b; …

Linux中创建用户要自己设置密码

因为不知道Linux默认设置的密码&#xff0c;没办法接下来愉快的使用。如下&#xff1a; 而想要新建Linux用户密码&#xff0c;请您执行以下步骤: . 1.打开终端并以root身份登录; 2.输入命令“useradd username",其中username为您新建的用户名; 3.使用命令“passwd usernam…

SDXL prompt 笔记

模型 模型有两个&#xff0c;分别是 stable-diffusion-xl-base-1.0、stable-diffusion-xl-refiner-1.0。 base 模型是用来做文生图&#xff0c;refiner 模型是用来做图生图的。 SDXL 模型之 base、refiner 和 VAE_云水木石的博客-CSDN博客 分辨率 默认是1024*1024&#xf…

Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业

数据集介绍 1.背景 根据《中国科学&#xff1a;信息科学》期刊上的一篇文章&#xff0c;量子通信包括多种协议与应用类型&#xff1a; 基于量子隐形传态与量子存储中继等技术&#xff0c;可实现量子态信息传输&#xff0c;进而构建量子信息网络&#xff0c;已成为当前科研热点&…

GDB的TUI模式(文本界面)

2023年9月22日&#xff0c;周五晚上 今晚在看GDB的官方文档时&#xff0c;发现GDB居然有文本界面模式 TUI (Debugging with GDB) (sourceware.org) GDB开启TUI的条件 GDB的文本界面的开启条件是&#xff1a;操作系统有适当版本的curses库 The TUI mode is supported only on…

ArrayList 的自动扩容机制

触发扩容 ArrayList 是一个数组结构的存储容器&#xff0c;默认情况下&#xff0c;数组的长度是 10 当然我们也可以在构建 ArrayList 对象的时候自己指定初始长度。随着在程序里面不断的往 ArrayList 中添加数据&#xff0c;当添加的数据达到 10 个的时候&#xff0c;ArrayLis…

web:[GXYCTF2019]Ping Ping Ping

题目 点进题目&#xff0c;页面只显示/?ip&#xff0c;没有其他信息 联系到题目名为ping&#xff0c;猜测题目于ping地址有关&#xff0c;先尝试一下 构造payload http://31e941af-c0d7-49c9-a3fe-84cb13d8adae.node4.buuoj.cn:81/?ip127.0.0.1 这里猜测可能为远程命令执行…

Linux(CentOS)安装msf

目录 一、安装MSF 1.1 在线安装 1.2 离线安装 二、安装Postgresql数据库 一、安装MSF 1.1 在线安装 需要挂梯子&#xff01;挂完梯子需要reboot重启&#xff0c;多试几次就可以&#xff0c;国内网络我试了很久都不行。没条件没梯子的看1.2离线安装 cd /opt curl https://ra…

Cortex-M4之FPU单元

最近在学习实时操作系统&#xff0c;以下是我对学习实时操作系统过程中做的一些笔记。 一、FPU单元 在 Coretex-M4 处理器中有一个可选的单精度 FPU 单元&#xff0c;一般 STM32F429 就有 FPU 单元&#xff0c; 如果使能了 FPU 单元的话就可以使用它来对单精度浮点数进行计算…

【探索Linux世界|中秋特辑】--- 倒计时和进度条的实现与演示

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Linux专栏】&#x1f388; 本专栏旨在分享学习Linux的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 演示环境&#xff1…

栈的详细实现

一 定义 概念 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行操作。该端叫做栈顶&#xff0c;相对的另一端叫做栈底。 符合LIFO&#xff08;后进先出&#xff09;的规则 关于栈顶的两个操作&#xff1a; 压栈/入栈/进栈&#xff1a;在栈顶部插入数据 出栈:栈顶删…

2023华为杯研究生数学建模C题分析

完整的分析查看文末名片获取&#xff01; 问题一 在每个评审阶段&#xff0c;作品通常都是随机分发的&#xff0c;每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性&#xff0c;不同专家评审的作品集合之间应有一些交集。但有的交集大了&#xff0c;则…

软件测试缺陷报告详解

【软件测试行业现状】2023年了你还敢学软件测试&#xff1f;未来已寄..测试人该何去何从&#xff1f;【自动化测试、测试开发、性能测试】 缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report&#xff08;SBR&#xff09;或软件问题报告Software Pr…

《动手学深度学习 Pytorch版》 7.5 批量规范化

7.5.1 训练深层网络 训练神经网络的实际问题&#xff1a; 数据预处理的方式会对最终结果产生巨大影响。 训练时&#xff0c;多层感知机的中间层变量可能具有更广的变化范围。 更深层的网络很复杂容易过拟合。 批量规范化对小批量的大小有要求&#xff0c;只有批量大小足够…

智能合约漏洞案例,NeverFall 漏洞复现

智能合约漏洞案例&#xff0c;NeverFall 漏洞复现 1. 漏洞简介 https://twitter.com/BeosinAlert/status/1653619782317662211 2. 相关地址或交易 https://explorer.phalcon.xyz/tx/bsc/0xccf513fa8a8ed762487a0dcfa54aa65c74285de1bc517bd68dbafa2813e4b7cb 攻击交易 攻击…

Python绘制X-bar图和R图 | 统计过程控制SPC

X-bar图和R图是用于统计过程控制&#xff08;SPC&#xff09;的两种常用工具&#xff0c;用于监测过程的平均值和范围&#xff08;变异性&#xff09;。这些图有助于识别过程中的变化和异常&#xff0c;以便及时采取纠正措施。 **X-bar图&#xff08;平均值控制图&#xff09;…

pcl--第十二节 2D和3D融合和手眼标定

2D&3D融合 概述 截止目前为止&#xff0c;我们学习了机器人学&#xff0c;学习了2D和3D视觉算法。我们也学习了2D相机(图像数据的来源)和3D相机(点云数据的来源)工作原理。 实际上&#xff0c;我们最终要做的&#xff0c;是一个手眼机器人系统。在这个系统里&#xff0c…

zookeeper + kafka

Zookeeper 概述 Zookeeper是一个开源的分布式服务管理框架。存储业务服务节点元数据及状态信息&#xff0c;并负责通知再 ZooKeeper 上注册的服务几点状态给客户端 Zookeeper 工作机制 Zookeeper从设计模式角度来理解: 是一个基于观察者模式设计的分布式服务管理框架&…