9.18号作业

完善登录框

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

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

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

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

second.h

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

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void mysignals();public slots:void userLogin();void userExit();private:
QPushButton *btn1;QPushButton *btn2;
QLabel *lab1;
QLabel *lab2;
QLabel *lab3;
QLineEdit *edit1;
QLineEdit *edit2;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::mysignals,&s,&Second::newslot);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);
}
void Second::newslot()
{this->show();            //将自己界面进行展示
}Second::~Second()
{delete ui;
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//构造一个登录按钮,并指定父组件,图标,和文本内容btn1=new QPushButton(QIcon("C:\\Users\\wuhuiwu\\Desktop\\login.png"),"登录",this);//设置固定长度this->setFixedSize(400,300);//设置窗口标题this->setWindowTitle("Widget");//设置窗口图标this->setWindowIcon(QIcon("C:\\Users\\wuhuiwu\\Desktop\\wodepeizhenshi.png"));//设置窗口尺寸btn1->setFixedSize(70,40);//移动按钮btn1->move(150,250);//再构造一个按钮,并给定父组件,图标,文本内容btn2=new QPushButton(QIcon("C:\\Users\\wuhuiwu\\Desktop\\cancel.png"),"取消",this);//设置按钮尺寸btn2->setFixedSize(70,40);//移动按钮btn2->move(btn1->x()+70,btn1->y());//实例化一个标签并指定父组件lab1=new QLabel(this);//设置尺寸lab1->resize(400,150);//设置图片lab1->setPixmap(QPixmap("C:\\Users\\wuhuiwu\\Desktop\\logo.png"));lab1->setScaledContents(true);//实例化一个标签并指定父组件lab2=new QLabel(this);//设置图片lab2->setPixmap(QPixmap("C:\\Users\\wuhuiwu\\Desktop\\userName.jpg"));//设置尺寸lab2->resize(40,30);//引动图标lab2->move(120,160);lab2->setScaledContents(true);//实例化一个标签并指定父组件lab3=new QLabel(this);//设置图片lab3->setPixmap(QPixmap("C:\\Users\\wuhuiwu\\Desktop\\passwd.jpg"));//设置尺寸lab3->resize(40,30);//移动图标lab3->move(lab2->x(),lab2->y()+50);lab3->setScaledContents(true);//构建一个文本编辑器edit1=new QLineEdit(this);//设置尺寸edit1->resize(100,30);edit1->move(lab2->x()+60,lab2->y());//设置占位文本edit1->setPlaceholderText("账号名");//构建一个文本编辑器edit2=new QLineEdit(this);//设置尺寸edit2->resize(100,30);edit2->move(edit1->x(),edit1->y()+50);//设置回显模式edit2->setEchoMode(QLineEdit::Password);edit1->setMaxLength(6);//登录connect(this->btn1,&QPushButton::clicked,this,&Widget::userLogin);//退出connect(this->btn2,&QPushButton::clicked,this,&Widget::userExit);}Widget::~Widget()
{delete ui;
}void Widget::userLogin()
{QString accout=this->edit1->text();QString password=this->edit2->text();if(accout=="admin"&&password=="123456"){qDebug()<<"匹配成功";QMessageBox box(QMessageBox::NoIcon,"success","登录成功",QMessageBox::Ok);int res=box.exec();if(res==QMessageBox::Ok){this->close();emit  mysignals();}}else{qDebug()<<"账户密码不匹配,是否重新登录";QMessageBox box1(QMessageBox::Critical,"error","账户密码错误",QMessageBox::Ok|QMessageBox::Cancel);int res=box1.exec();if(res==QMessageBox::Ok){this->edit2->clear();}else if(res==QMessageBox::Cancel){this->close();}}}
void Widget::userExit()
{QMessageBox box2(QMessageBox::Warning,"退出","要退出吗?",QMessageBox::Yes|QMessageBox::No);int res=box2.exec();if(res==QMessageBox::Yes){this->close();}else if(res==QMessageBox::No){this->edit1->clear();this->edit2->clear();}
}

思维导图

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

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

相关文章

day2_QT

day2_QT 登录窗口 登录窗口 loginwindow.h #ifndef LOGINWINDOW_H #define LOGINWINDOW_H#include <QWidget> #include <QDebug> #include <QIcon> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QObjec…

Gavin Wood 演讲全文:建设更具韧性以应变化的 Polkadot

我们非常激动能邀请到 Gavin Wood 博士来现场分享关于 Polkadot 的近况以及最新的进展&#xff0c;带来他对于《加密项目应该怎样应对当今世界的变化》的演讲分享。 &#x1f6a9;点击视频链接观看演讲实录&#xff1a;https://www.youtube.com/watch?vYw3mQNJ5UJQ&t1048s…

JWT 使用教程 授权 认证

JWT 1.什么是JWT JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally s…

Java上传图片到阿里云OSS并回显URL

Java上传图片到阿里云OSS并回显URL 关键代码 OSSClientHandler.java import java.io.InputStream; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID;import org.springframework.beans.factory.annotation.Value; i…

JDBC基本概念

什么是JDBC JDBC概念 JDBC&#xff08;Java DataBase Connectivity&#xff09;是一套统一的基于Java语言的关系数据库编程接口规范。 该规范允许将SQL语句作为参数通过JDBC接口发送给远端数据库&#xff0c; …

Java 为01序列实现快速 HashSet

01 数组 import java.util.BitSet; import java.util.HashMap; import java.util.Arrays;public class FastHashSet {private HashMap<Integer, BitSet> map new HashMap<>();public void add(int[] array) {BitSet bitSet new BitSet(array.length);for (int i…

4G模块驱动移植

一、4G模块概述 1、调试的模块型号是广和通的 NL668-EAU-00-M.2。 2、使用的接口是 M.2 Key-B。实际只用到了M2里的USB接口。 调试过程 以QMI_WWAN号方式进行说明&#xff0c;其他拨号方式也试过。最后以QMI_WWAN方式调通了&#xff0c;拨号成功了。 其他拨号方式因为现有文档…

练习敲代码速度

2023年9月18日&#xff0c;周一晚上 今晚不想学习&#xff0c;但又不想玩游戏&#xff0c;于是找了一些练习敲代码的网站来玩玩&#xff0c;顺便练习一下敲代码的速度 目录 参考资料个人推荐第一个 第二个第三个 参考资料 电脑打字慢&#xff0c;有哪些比较好的练打字软件&a…

界面控件DevExpress的VS报表设计器 v23.1——启动速度全面提升

本文主要介绍在DevExpress v23.1这个版本发布周期中对Visual Studio报表设计器所做的改进&#xff0c;包括优化的启动时间、新的全局选项对话框等。 屡获大奖的界面控件套包DevExpress 今年第一个重要版本v23.1正式发布&#xff0c;该版本拥有众多新产品和数十个具有高影响力的…

用无代码搭建数据中台,竟做到如此丝滑

文章目录 需求背景系统介绍配置说明1 菜单导航2 系统自带组件导入页面&#xff08;1&#xff09;数据集成相关组件&#xff08;2&#xff09;数据服务相关组件 3 由系统组件路径添加页面&#xff08;1&#xff09;数据资产管理&#xff08;2&#xff09;数据标准管理&#xff0…

vben-admin中渲染table表格时怎么处理不同的数据结构

最近在用vben admin开发后台管理系统&#xff0c;vben admin这个后管端框架封装的非常细&#xff0c;颗粒度非常细&#xff0c;如果了解里面的组件或者api用法&#xff0c;那开发起来非常快。如果不了解&#xff0c;那就非常痛苦了&#xff0c;目前关于vben admin这块的开发问题…

linux-awk命令

目录 1.linux awk 模糊查询 2.linux awk 取列 2 3.linux awk 多个条件and查询 4.linux awk取列 1 5.linux awk取行 6.linux awk 所有pod日志查询 7.linux awk 批量删除pod 1.linux awk 模糊查询 释&#xff1a;~ 为包含&#xff0c;!~ 为不包含 【1】查询test.log文件…

Linux工具(一)

前言&#xff1a;Linux是一个开源的操作系统&#xff0c;它拥有庞大而活跃的开发社区&#xff0c;为用户提供了丰富多样的工具和应用程序。这些工具不仅适用于系统管理员和开发人员&#xff0c;也适用于普通用户&#xff0c;可以帮助他们完成各种任务&#xff0c;从简单的文件管…

题目 1057: 二级C语言-分段函数

有一个函数如下&#xff0c;写一程序&#xff0c;输入x&#xff0c;输出y值。 保留两位小数 样例输入 1 样例输出 1.00 这道题的思路很简单&#xff0c;我直接用if判断输入的X对应的函数Y的区间&#xff0c;代入对应的函数&#xff0c;求出结果。记得变量用浮点型&#xff…

JS操作字符串方法学习系列(3)-每天学习10个方法

目录 字符串包含 (Includes)**:**字符串字符替换 (CharAt 和 CharCodeAt)**:**字符串逆序 (Reverse)**:**字符串拼接 (Join)**:**字符串查找最大/最小字符 (Max/Min)**:**字符串重复填充 (PadStart 和 PadEnd)**:**字符串按字母排序 (Sort)**:**字符串分组 (Chunking)**:**字符…

手游(偏二次元)简记

游戏上市时间开发商、代理/发行公司类型、品质、乐趣日常肝度周本、活动肝度和氪度等崩坏&#xff1a;星穹铁道2023年4月26日米哈游回合制二次元手游&#xff0c;有场景地图可自由活动。Top3水平。建模精美&#xff0c;动画级演出&#xff0c;无PVP。乐趣&#xff1a;剧情、集卡…

亚马逊云科技面向游戏运营活动的AI生图解决方案

随着Stable Diffusion等AI生图方案逐步普及&#xff0c;越来越多的场景被开发和落地。其中面向游戏C端玩家的AI生图营销活动场景正在被逐步验证&#xff1a;在某个游戏社区中&#xff0c;玩家一键从手机上传一张照片&#xff0c;AI会将自动识别该照片中的元素并替换成游戏中相应…

今年嵌入式行情怎么样?

今年嵌入式行情怎么样&#xff1f; 嵌入式技术今年可以说是IT领域中最炙手可热的之一。随着中年危机和内卷问题的出现&#xff0c;越来越多的互联网从业者将目光投向了嵌入式领域。国内的嵌入式市场一直受终端需求变化的影响而波动&#xff0c;但随着国内产业自主化的发展趋势…

Python匿名函数

简单来说&#xff0c;匿名函数就是懒。 结构 函数名 lambda 参数 : 函数体 fun lambda x,y : x*y*y fun(3,5)优点 可以让写代码更“懒”一点

[S2] Challenge 25 心脏病预测

问题 您是一家医疗保健公司的数据科学家&#xff0c;试图创建患者是否患有心脏病的预测因子。目前&#xff0c;您正在试验 11 种不同的特征&#xff08;潜在心脏病指标&#xff09;和 XGBoost 分类模型&#xff0c;您注意到它的性能可能会根据其调整方式而发生很大变化。在此挑…