2月9日QT

embedded/2025/2/12 17:32:16/

优化登录框:

当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录

当用户点击的登录按钮,进行账号和密码的匹配,如果匹配成功,则弹出信息对话框,给出信息为,登录成功,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面

当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。如果用户点击的取消,则关闭登录界面

要求:静态成员函数版本和对象版本各至少实现一个

头文件:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QPushButton> //按键类头文件
#include<QLabel>     //标题类头文件
#include<QLineEdit>  //行编辑器头文件
#include<QDebug>     //输出类头文件
#include<QMessageBox> //对话框类头文件
class Widget : public QWidget
{Q_OBJECTpublic slots:void clicked_slot();signals:void jump();public:Widget(QWidget *parent = nullptr);~Widget();private:QLabel *lab1;QLabel *lab2;QLabel *lab3;QLineEdit *edit1;QLineEdit *edit2;QPushButton *btn1;QPushButton *btn2;
};
#endif // WIDGET_H

源文件:

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent)
{//设置整个界面resize(400,500);setWindowIcon(QIcon(":/pictrue/qq2.gif"));setWindowTitle("KK快聊");//给lable1实例化空间并设置(logo)lab1= new QLabel("logo",this);lab1->resize(400,160);lab1->setPixmap(QPixmap(":/pictrue/zz.gif"));lab1->setScaledContents(true);//给lable2实例化空间并设置(账号)lab2= new QLabel("账号",this);lab2->resize(50,40);lab2->move(40,200);//给lable3实例化空间并设置(密码)lab3= new QLabel("密码",this);lab3->resize(lab2->size());lab3->move(lab2->x(), lab2->y()+lab2->height()+10);//给edit1实例化空间并设置(输入账号)edit1=new QLineEdit(this);edit1->resize(200, 40);edit1->move(100,200);edit1->setAlignment(Qt::AlignCenter);        //设置对齐方式edit1->setPlaceholderText("请输入账号");      //设置占位文本//给edit2实例化空间并设置(输入密码)edit2=new QLineEdit(this);edit2->resize(edit1->size());edit2->move(edit1->x(), edit1->y()+edit1->height()+10);edit2->setAlignment(Qt::AlignCenter);        //设置对齐方式edit2->setPlaceholderText("请输入密码");      //设置占位文本edit2->setEchoMode(QLineEdit::Password);      //设置回显模式//给btn1实例化空间并设置(登录)btn1 = new QPushButton("登录", this);btn1->resize(50,30);btn1->move(140,400);//给btn2实例化空间并设置(取消)btn2 = new QPushButton("取消", this);btn2->resize(btn1->size());btn2->move(btn1->x()+btn1->width()+10, btn1->y());//将登陆按钮的clicked信号连接到自定义的槽函数QObject::connect(btn1,&QPushButton::clicked,this,&Widget::clicked_slot);//设置取消按键的clicked信号QObject::connect(btn2, &QPushButton::clicked, [this](){//实例化一个问题对话框的对象QMessageBox box(QMessageBox::Question,"问题对话框","是否确定退出登录",QMessageBox::Yes|QMessageBox::No,this);//调用exec函数,将对话框显示出来int res=box.exec();if(res==QMessageBox::Yes){close();}});}//登陆按钮点击信号的槽函数
void Widget::clicked_slot()
{//获取账号密码QString usrname =edit1->text();QString pwd =edit2->text();//判断账号和密码是否一致if(usrname==pwd){//调用静态成员函数,创建一个信息对话框QMessageBox::information(this,"信息对话框","登录成功",QMessageBox::Ok);close();emit jump();}else{//实例化一个问题对话框的对象QMessageBox box(QMessageBox::Question,"问题对话框","账号与密码不匹配,是否重新登录",QMessageBox::Yes|QMessageBox::No,this);//调用exec函数,将对话框显示出来int res=box.exec();if(res==QMessageBox::Yes){edit2->clear();}else if(res==QMessageBox::No){close();}}
}Widget::~Widget()
{
}


http://www.ppmy.cn/embedded/161650.html

相关文章

基于YoloV11和驱动级鼠标模拟实现Ai自瞄

本文将围绕基于 YoloV11 和驱动级鼠标实现 FPS 游戏 AI 自瞄展开阐述。 需要着重强调的是&#xff0c;本文内容仅用于学术研究和技术学习目的。严禁任何个人或组织将文中所提及的技术、方法及思路应用于违法行为&#xff0c;包括但不限于在各类游戏中实施作弊等违规操作。若因违…

Oracle入门精读03_Oracle11g安装目录及子目录的结构简介

在Windows2012 Server R2&#xff0c;个人把 Oracle Database 11g安装于硬盘D,如下&#xff1a; 在Oracle Database 11g中&#xff0c;Oracle的目录结构是由Oracle_Base及其子目录cfgtoollogs 、diag 、product、admin、flash_recovery_area和oradata等。这个与Oracle 10G不同的…

当 VSCode 遇见 DeepSeek:AI 赋能未来编程

更多内容可以加入Linux系统知识库套餐&#xff08;教程&#xff0b;视频&#xff0b;答疑&#xff09; 文章目录 一、简介二、ContinueDeepseek实现AI编程辅助2.1 安装Continue2.2 创建Deepseek API密钥2.3 修改Continue配置2.4 使用相关AI编程辅助功能 沉淀、分享、成长&#…

Windows系统中常用的命令

随着Windows系统的不断改进&#xff0c;维护系统时有时候会因为新系统的更新而找不到对应的模块或者相关的信息入口&#xff0c;这个时候&#xff0c;记住一些命令就可以起到很好的帮助作用。 比如&#xff0c;windows11中的网络属性的修改&#xff0c;可能习惯了windows10或者…

用 OpenCV 画圆:让图像处理更简单有趣

前言 在计算机视觉的世界里,图像处理就像是画家挥舞着画笔,创造出千变万化的视觉效果。而 OpenCV,这把“万能画笔”,其中的cv2.circle函数,无疑是绘制圆形的得力助手。你可能会想,画个圆不就是“圆心、半径、颜色”嘛!简单得像吃饭一样。但要知道,这个看似简单的小工具…

基于STM32的ADS1230驱动例程

自己在练手项目中用到了ADS1230&#xff0c;根据芯片手册自写的驱动代码&#xff0c;已测可用&#xff0c;希望对将要用到ADS1230芯片的人有所帮助。 芯片&#xff1a;STM32系列任意芯片、ADS1230 环境&#xff1a;使用STM32CubeMX配置引脚、KEIL 部分电路&#xff1a; 代码…

【C++指南】解锁C++ STL:从入门到进阶的技术之旅

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C指南》 期待您的关注 目录 一、STL 是什么 二、STL 的核心组件 2.1 容器&#xff08;Containers&#xff09; 2.2 算法&…

ES数据压缩、解压调研测试

ES数据压缩、解压调研测试 设置 best_compression 压缩方式 所占磁盘空间 查询速度(解压) 设置默认压缩方式(LZ4) 所占磁盘空间 5分钟后压缩再次触发 变为149M 查询速度(解压) 结论 针对压缩来说&#xff0c;压缩触发的因素不单纯是数据落到ES就开始压缩&#xff0c…