Day3 Qt

作业

1.

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

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

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

要求:基于属性版和基于静态成员函数版至少各用一个

要求:尽量每行代码都有注释

//my_widget.cpp#include "my_widget.h"
#include "ui_my_widget.h"My_Widget::My_Widget(QWidget *parent): QWidget(parent), ui(new Ui::My_Widget)
{ui->setupUi(this);//窗口的相关设置//    this -> resize(800,500);this -> setWindowTitle("QQ聊天"); //设置窗口标题this -> setWindowIcon(QIcon(":/pictrue/pictrue/qq.png"));//设置窗口图标//标签相关设置ui-> logoLab ->setPixmap(QPixmap(":/pictrue/pictrue/logo.png"));//设置登录界面主图ui -> logoLab -> setScaledContents(true);//主图自适应标签大小//账号和密码ui -> userNameLab -> resize(40,40);//设置账户标签图标大小ui -> userNameLab -> setPixmap(QPixmap(":/pictrue/pictrue/wodepeizhenshi.png"));//设置账户标签图标ui -> userNameLab -> setScaledContents(true);//设置账户标签图标自适应标签大小ui -> passwdLab -> resize(40,40);//设置密码标签大小ui -> passwdLab ->setPixmap(QPixmap(":/pictrue/pictrue/passwd.jpg"));//设置密码标签图标ui -> passwdLab ->setScaledContents(true);//设置密码标签图标自适应标签大小//账号密码输入ui -> usrEdit ->setPlaceholderText("QQ账号/手机号码/QQ邮箱");//在账户输入行编译器上设置隐性输入提示ui -> passwdEdit -> setPlaceholderText("请输入密码");//在密码输入行编译器上设置隐性输入提示ui -> passwdEdit -> setEchoMode(QLineEdit::Password);//将密码行编译器设置为不可见属性防止密码泄露//登录按钮ui -> btn1 ->setIcon(QIcon(":/pictrue/pictrue/login.png"));//登录按钮设置添加图片ui -> btn2 ->setIcon(QIcon(":/pictrue/pictrue/cancel.png"));//取消登录按钮设置添加图片connect(ui ->btn1,&QPushButton::clicked,this,&My_Widget::btn1_slot);//信号触发函数,按下登录按钮,当登录成功则响应相应槽函数,判断账号是否输入正确//   connect(ui->btn2,SIGNAL(clicked()),this,SLOT(my_slot()));}My_Widget::~My_Widget()
{delete ui;
}void My_Widget::my_slot() //QT4版本 槽函数
{this ->close();//当前界面关闭
}
void My_Widget:: btn1_slot() //qt5版本信号与槽函数连接,自定义
{QString s = ui ->usrEdit->text();//存入输入的数据QString v = ui ->passwdEdit->text();//存入输入的数据//判断账号密码输入正确if(s=="admin"&&v=="123456"){qDebug() << "登录成功";//终端输出登录成功//跳转另一个窗口int res=QMessageBox::information(this,"登录成功",                  //调用静态消息对话框"密码正确,请进入聊天界面",      //参数内容书写QMessageBox::Ok);            //参数判断是否ok 返回okif(res==QMessageBox::Ok) //判断选择按下按钮ok{emit Jump(); //则进行跳转界面,先发送跳转信号,通过跳转信号链接第二窗口的show函数}this->close();//跳转是将当前登录界面关闭}else{//============基于属性版本==============
//        QMessageBox msg(                                //调用属性消息对话框
//                    QMessageBox::Critical,                //输出提示错误信息
//                    "错误",
//                    "账号和密码不匹配,是否重新登录",
//                    QMessageBox::Yes | QMessageBox::No);  //判断按下确认还是否定
//        int ret=msg.exec();  属性消息设置成功编译执行弹出后返回一个确认键值
//        if(ret==QMessageBox::Yes) //判断是否按下确认键
//        {
//            ui ->usrEdit->clear();  //按下yes则清空账户行编译器内容重新输入账号
//            ui->passwdEdit -> clear();//按下yes则清空密码行编译器内容重新输入密码
//            qDebug()<<"请重新登录"; //终端输出重新登入
//        }
//        else  //若按下No键,则进行退出登录
//        {
//           this->close();//退出当前登录界面
//        }
//    }//============基于属性版本==============//============基于静态成员函数版本==============int res=QMessageBox::critical(this,"输入错误",                          //调用静态成员函数错误输出信息框"账号和密码不匹配,是否重新登录",          // 函数内部具体实参QMessageBox::Yes | QMessageBox::No);     //写入消息框按键有哪几个if(res==QMessageBox::Yes)  //如果返回值按下的是YES{ui ->usrEdit->clear();  //清空账号信息ui->passwdEdit -> clear(); //清空密码信息}else{this->close(); //否则按下NO,关闭当前登录界面}//============基于静态成员函数版本==============
}}
void My_Widget::on_btn2_clicked()  //取消键被按下,执行弹出消息框
{//============基于属性版本==============
//    QMessageBox msg1(
//                QMessageBox::Information,
//                "取消登录",
//                "请问您是否需要取消登录",
//                QMessageBox::Yes | QMessageBox::No);
//    int ret=msg1.exec();
//    if(ret==QMessageBox::Yes)
//    {
//        this->close();
//    }
//    else
//    {
//        ui ->usrEdit->clear();
//        ui->passwdEdit -> clear();
//        qDebug()<<"请重新登录";
//    }//============基于属性版本==============//============基于静态成员函数版本==============int res=QMessageBox::information(this,"取消登录","请问您是否需要取消登录",QMessageBox::Yes | QMessageBox::No);if(res==QMessageBox::Yes)  //若按下YES,则取消登录关闭登录页{this->close();}else //按下NO,则不取消登录{ui ->usrEdit->clear();ui->passwdEdit -> clear(); //清空输入端,终端输入提示信息请重新登录qDebug()<<"请重新登录";}//============基于静态成员函数版本==============}
//my_widget.h#ifndef MY_WIDGET_H
#define MY_WIDGET_H
#include <QMessageBox>
#include <QWidget>
#include <QIcon>
#include <QPixmap>
#include<QLineEdit>
#include <QPushButton>
#include<QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class My_Widget; }
QT_END_NAMESPACEclass My_Widget : public QWidget
{Q_OBJECTpublic:My_Widget(QWidget *parent = nullptr);~My_Widget();public slots:void btn1_slot();
void my_slot();signals:void Jump();private slots:
void on_btn2_clicked();private:Ui::My_Widget *ui;
};
#endif // MY_WIDGET_H
//main.cpp
#include "my_widget.h"
#include "second.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);My_Widget w;w.show();Second s;QObject ::connect(&w,&My_Widget::Jump,&s,&Second::Jump_slot);//调用caonnect函数,第一个登录窗口成功后进入新的对话框return a.exec();
}

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

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

相关文章

WPF中在MVVM模式下实现导航功能

WPF中在MVVM模式下实现导航功能 一、利用TabControl 使用场景&#xff1a;项目小&#xff0c;不用考虑内存开销的问题。 实现方式1-手动指定ViewModel 分别定义3个UserControl作为View用于演示 <UserControl...><Grid><StackPanel Orientation"Vertic…

【JAVA】日志打印java.util.logging.*函数自定义格式,并且显示调用时行号

1、JAVA自带的这样&#xff1a; 代码如下&#xff1a; import java.util.logging.*; Logger logger Logger.getLogger(MyLogger.class.toString()); logger.info("123");显示效果&#xff1a; 这样的格式&#xff0c;看起来不太好看&#xff0c;比如&#xff1a;会…

Java项目-网页聊天程序

目录 项目介绍 项目功能简介 项目创建 用户管理模块 1.数据库设计及代码实现 2.前后端交互接口的设计 3.服务器代码开发 好友管理模块 数据库设计 好友表设计的两个重要问题 设计前后端交互接口 服务器代码 会话管理模块 会话的数据库设计 获取会话信息 约定前后…

开启Linux之旅:用VMware安装CentOS7

最近我的阿里云服务器到期了&#xff0c;不想续费&#xff0c;所以就深入研究了一下虚拟机搭建Linux系统&#xff0c;感觉还不错&#xff0c;所以在这篇博客中分享一下。下面我将带领大家开启全新的Linux之旅&#xff0c;用VMware安装CentOS 7&#xff0c;具体操作步骤如下所示…

IDEA中SpringBoot项目的yml多环境配置

SpringBoot的yml多环境配置 创建多个配置文件 application.yml #主配置文件 application-dev.yml #开发环境的配置 application-test.yml #测试环境的配置在application.yml中添加多环境配置属性 spring:profiles:active: profiles.active项目启动可能不会识别&#x…

AbortController中止请求通信[模糊搜索案例]

AbortController中止请求通信[模糊搜索案例] AbortController中止请求通信(模糊搜索案例) AbortController中止请求通信(模糊搜索案例) 这里用模糊搜索来做示例&#xff0c;这里是调用后端模糊搜索接口 该案例的中止请求可以用于很多地方&#xff0c;比如取消上传/下载文件等 完…

SpringCloud链路追踪——Spring Cloud Sleuth 和 Zipkin 介绍 Windows 下使用初步

前言 在微服务中&#xff0c;随着服务越来越多&#xff0c;对调用链的分析越来越复杂。如何能够分析调用链&#xff0c;定位微服务中的调用瓶颈&#xff0c;并对其进行解决。 本篇博客介绍springCloud中用到的链路追踪的组件&#xff0c;Spring Cloud Sleuth和Zipkin&#xf…

Shopee买家通自养号系统可批量注册、自动下单

Shopee买家通自养号系统是一款专门针对虾皮买家号所开发的软件&#xff0c;目前支持菲律宾、印度尼西亚、泰国、巴西、马来西亚等国家使用&#xff0c;可批量注册、自动下单。 如果想拥有大量的买家号&#xff0c;那么可以使用批量注册账号功能&#xff0c;把账号所需要的资料准…

购药不烦恼:线上购药小程序的快捷方式

在这个数字化时代&#xff0c;线上购药小程序的快捷方式正在改变着我们购药的方式。本文将介绍如何通过使用Python和Flask框架创建一个简单的线上购药小程序的原型&#xff0c;为用户提供购药的便利和快捷体验。 安装和设置 首先&#xff0c;确保你已经安装了Python和Flask。…

《C语言图形界面-系统开发》专栏介绍 专栏目录

《C语言图形界面-系统开发》介绍及目录 基本介绍 本项目是一个基于EasyX图形库的C语言图书管理系统。 界面优美高级代码结构设计合理注释详尽清晰 本专栏是一个详尽到完全贴近C语言初学者的教程&#xff0c;完整代码 配套教程&#xff0c;完全不用担心学不会的问题。 项目展…

危险化工品出口注意事项及法规要求_箱讯科技

随着全球化工品市场的不断发展&#xff0c;危险化工品出口业务逐渐成为国际贸易的重要组成部分。然而&#xff0c;由于危险化工品具有潜在的危险性&#xff0c;出口过程中需严格遵守相关法规和注意事项&#xff0c;以确保运输安全和顺畅。本文将详细介绍危险化工品出口注意事项…

RabbitMQ入门到实战教程,MQ消息中间件,消息队列实战

消息队列是目前最常见的微服务中间件之一&#xff0c;而RabbitMq在全球范围内的使用率也是名列前茅。它以稳定性强、并发高、低时延的特点深受广大企业开发者的喜爱。然而市面上一致缺乏一个专门的RabbitMQ课程&#xff0c;所以这套课程应运而生。 微服务一旦拆分&#xff0c;必…

go-fastdfs安装(国产分布式文件系统)

开源协议&#xff1a; Unlicense官网地址&#xff1a; https://sjqzhang.github.io/go-fastdfs/#vision安装: wget --no-check-certificate https://github.com/sjqzhang/go-fastdfs/releases/download/v1.3.1/fileserver -O fileserver && chmod x fileserver &…

c++入门(命名空间, c++输入输出, 缺省参数)

文章目录 1. 命名空间正确的命名定义命名空间的使用 2. c输入与输出标准输入输出对象向流写入 读取数据 3. 缺省参数缺省参数分类缺省参数声明缺省参数初始值 c的简单介绍 C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大…

【图解RabbitMQ-5】RabbitMQ Web管控台图文介绍

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

02_diffusion_models_from_scratch_CN

从零开始的扩散模型 有时&#xff0c;只考虑一些事务最简单的情况会有助于更好地理解其工作原理。我们将在本笔记本中尝试这一点&#xff0c;从“玩具”扩散模型开始&#xff0c;看看不同的部分是如何工作的&#xff0c;然后再检查它们与更复杂的实现有何不同。 我们将学习 …

Linux篇 五、Ubuntu与Linux板卡建立NFS服务

Linux系列文章目录 一、香橙派Zero2设置开机连接wifi 二、香橙派Zero2获取Linux SDK源码 三、香橙派Zero2搭建Qt环境 四、Linux修改用户名 文章目录 Linux系列文章目录前言一、连接到局域网互ping测试 二、安装NFS服务配置NFS更新exports配置三、板卡安装NFS客户端四、板卡临时…

microcom串口调试工具使用

microcom串口助手使用介绍 microcom是一个在终端中使用的串口助手&#xff0c;类似平常使用SSCOM一样的东西&#xff0c;不过是在终端中使用而已。 使用的是busybox构建的文件系统 microcom源码路径&#xff1a;busybox/miscutils/microcom.c microcom 参数&#xff1a; [r…

伊朗相关的OilRig组织在为期8个月的网络攻击中针对中东政府

导语 伊朗相关的OilRig组织最近在中东政府中展开了一场长达8个月的网络攻击行动。这次攻击导致了文件和密码的被窃取&#xff0c;并且在其中一次攻击中&#xff0c;攻击者还使用了一种名为PowerExchange的PowerShell后门。据Symantec的威胁猎人团队称&#xff0c;他们在一份与T…

【软考】6.2 网络安全技术

《网络安全技术》 防火墙 一道大门&#xff0c;隔离内网和外网主要分隔外网的威胁&#xff0c;对内网的直接攻击无能为力 入侵检测系统&#xff08;IDS&#xff09; 位于防火墙后的第二道屏障监听设备&#xff1a;监控当前系统 / 用户行为&#xff0c;无需网络流量即可工作尽…