QT---day2---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.hqwc.cn/news/115295.html

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

相关文章

please choose a certificate and try again.(-5)报错怎么解决

the server you want to connect to requests identification,please choose a certificate and try again.(-5)

【C++】vector中的常见函数和使用

前言 感觉vector在目前阶段很常用&#xff0c;就总结记录一些vector的用法 方便自己忘记的时候查找 因为是自用&#xff0c;所以我直接放代码了&#xff0c;只说明如何使用&#xff0c;以及一些小的注意点&#xff0c;对于函数具体实现过程&#xff0c;在这篇文章中&#xff…

LLMs资源

一、ChatGPT 《中科院学术专业版 ChatGPT》&#xff1a; gpt_academic项目针对了中科院日常科研工作&#xff0c;基于 ChatGPT 专属定制了一整套实用性功能&#xff0c;用于优化学术研究以及开发日常工作流程。其中内置的工具&#xff0c;包括但不限于以下这些&#xff1a;学术…

使用 PyTorch 的计算机视觉简介 (1/6)

一、说明 Computer Vision&#xff08;CV&#xff09;是一个研究计算机如何从数字图像和/或视频中获得一定程度的理解的领域。理解这个定义具有相当广泛的含义 - 它可以从能够区分图片上的猫和狗&#xff0c;到更复杂的任务&#xff0c;例如用自然语言描述图像。 二、CV常见的问…

flask_apscheduler实现定时推送飞书消息

需求场景&#xff1a; 实现一个flask服务&#xff0c;通过接口控制一个定时任务任务&#xff08;对酒店订房情况进行检查&#xff09;的开启和停止。要求定时任务完成后&#xff0c;可以通过飞书机器人推送任务完成的消息。 展现效果&#xff1a; 启动定时任务 关闭定时任务…

Sentinel结合Nacos实现配置持久化(全面)

1、前言 我们在进行分布式系统的开发中&#xff0c;无论是在开发环境还是发布环境&#xff0c;配置一定不能是内存形式的&#xff0c;因为系统可能会在中途宕机或者重启&#xff0c;所以如果放在内存中&#xff0c;那么配置在服务停到就是就会消失&#xff0c;那么此时就需要重…

利用优化算法提高爬虫任务调度效率

目录 一、任务调度优化的重要性 二、选择合适的优化算法 三、建立任务调度模型 四、设计适应性函数 五、算法实施和调优 六、性能评估和优化结果分析 代码示例 总结 随着网络信息的爆炸式增长&#xff0c;网络爬虫在信息获取和数据挖掘等领域的应用越来越广泛。然而&am…

2000-2021年上市公司劳动投资效率测算数据:劳动投资效率、冗余雇佣、雇佣不足(含原始数据和计算代码do文档)

2000-2021 年上市公司劳动投资效率测算数据&#xff1a;劳动投资效率、冗余雇佣、雇佣不足 &#xff08;含计算代码do文档&#xff09; 1、时间&#xff1a;2000-2021 年 2、范围&#xff1a;沪深A 股上市公司 3、指标&#xff1a;code、year、证券代码、货币资金、短期投资…

C语言-扫雷游戏的实现

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

MasterAlign相机参数设置-增益调节

相机参数设置-曝光时间调节操作说明 相机参数的设置对于获取清晰、准确的图像至关重要。曝光时间是其中一个关键参数&#xff0c;它直接影响图像的亮度和清晰度。以下是关于曝光时间调节的详细操作步骤&#xff0c;以帮助您轻松进行设置。 步骤一&#xff1a;登录系统 首先&…

【C++】静态成员变量 ( 静态成员变量概念 | 静态成员变量声明 | 静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 )

文章目录 一、静态成员变量概念1、静态成员变量引入2、静态成员变量声明3、静态成员变量初始化4、静态成员变量访问5、静态成员变量生命周期 二、完整代码示例 一、静态成员变量概念 1、静态成员变量引入 在 C 类中 , 静态成员变量 又称为 静态属性 ; 静态成员归属 : 静态成员…

机器学习第五课--广告点击率预测项目以及特征选择的介绍

这个项目的主要的目的是通过给定的广告信息和用户信息来预测一个广告被点击与否。 如果广告有很大概率被点击就展示广告&#xff0c;如果概率低&#xff0c;就不展示。 因为如果广告没有被点击&#xff0c;对双方&#xff08;广告主、平台&#xff09;来讲都没有好处。所以预测…