qt day 3

优化登录框,点击登录按钮,如果账号和密码匹配,则弹出 信息对话框 给出提示信息“登录成功”,并给出一个 ok 按钮,当用户点击 ok 后,关闭当前界面,跳转到另一个界面;如果账号和密码不匹配,则弹出 错误对话框 给出提示信息“登录失败,是否重新登录”,并给出两个按钮,yes 和 no,当用户点击yes后,清空两个行编辑器中的文本内容,继续登录,当用户点击no按钮后,关闭整个登录界面

#include "mywidget.h"
#include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget)
{ui->setupUi(this);this->resize(540,415);//窗口大小this->setFixedSize(540,415);//固定窗口大小this->setWindowTitle("QQ");//标题this->setWindowIcon(QIcon("C:\\Users\\14123\\Desktop\\qt\\pictrue\\qq.png"));//图标this->setStyleSheet("background-color:white");//图标// this->setWindowFlag(Qt::FramelessWindowHint);//去头lab1 = new QLabel(this);//设置标签lab1->resize(540, 160);//标签大小QMovie *mv = new QMovie("C:\\Users\\14123\\Desktop\\qt\\pictrue\\zz.gif");//接收动图lab1->setMovie(mv);//将动图放入标签mv->start();//让动图动起来lab1->setScaledContents(true);//自动适应大小lab2 = new QLabel(this);//设置标签2lab2->resize(30,30);//标签大小lab2->move(120,210);//标签移动位置lab2->setPixmap(QPixmap("C:\\Users\\14123\\Desktop\\qt\\pictrue\\wodepeizhenshi.png"));//将图片放入标签lab2->setScaledContents(true);//自动适应大小lab3 = new QLabel(this);//设置标签3lab3->resize(30,30);lab3->move(120, 260);lab3->setPixmap(QPixmap("C:\\Users\\14123\\Desktop\\qt\\pictrue\\passwd.jpg"));lab3->setScaledContents(true);edit1 = new QLineEdit(this);//设置行编辑器edit1->resize(275,30);//行编辑器大小edit1->move(155,210);//移动行编辑器位置edit1->setPlaceholderText("QQ号/手机号/邮箱");//行编辑器占位edit2 = new QLineEdit(this);edit2->resize(275,30);edit2->move(155,260);edit2->setPlaceholderText("密码");//行编辑器占位edit2->setEchoMode(QLineEdit::Password);//行编辑器密码模式显示btn = new QPushButton("登录",this);//按钮组件btn->resize(300,45);//按钮组件大小btn->move(120,345);//按钮组件移动位置//按钮背景色,边框倒角,字体颜色btn->setStyleSheet("background-color:red;border-radius:5px;color:white");btn->setEnabled(false);connect(this->edit1,&QLineEdit::textChanged,this,&MyWidget::edit_Slots);connect(this->edit2,&QLineEdit::textChanged,this,&MyWidget::edit_Slots);connect(this->btn,&QPushButton::clicked,this,&MyWidget::btn_Slots);}void MyWidget::btn_Slots()
{if(this->edit1->text()=="admin" && this->edit2->text()=="123456"){qDebug() << "登录成功";QMessageBox box(QMessageBox::Information,"信息对话框","登陆成功",QMessageBox::Ok,this);int res = box.exec();if(res==QMessageBox::Ok){emit jump();this->close();}}else{int res = QMessageBox::critical(this,"错误对话框","登录失败,账号或密码错误,是否重新登陆",QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);if(res==QMessageBox::Yes){this->edit1->clear();this->edit2->clear();}else if(res==QMessageBox::No){this->close();}//qDebug() << "登录失败,账号或密码错误";}
}
void MyWidget::edit_Slots()
{QString s1=this->edit1->text();QString s2=this->edit2->text();if(s1.length()>=5 && s2.length()>=6 ){this->btn->setStyleSheet("background-color:rgb(8,189,253)");this->btn->setEnabled(true);}else if(s1.length()<5 || s2.length()<6  ){this->btn->setStyleSheet("background-color:red");this->btn->setEnabled(false);}}MyWidget::~MyWidget()
{delete ui;
}

 

 文本编辑器实现完整

#include "mywidget.h"
#include "ui_mywidget.h"Mywidget::Mywidget(QWidget *parent): QWidget(parent), ui(new Ui::Mywidget)
{ui->setupUi(this);
}Mywidget::~Mywidget()
{delete ui;
}void Mywidget::on_fontbtn_clicked()
{//调用函数选择字体bool ok = false;QFont f = QFontDialog::getFont(&ok,QFont("宋体",10,10,true),this,"选择字体");//使用选择的字体if(ok){ui->textEdit->setCurrentFont(f);}}void Mywidget::on_colorbtn_clicked()
{//调用函数选择颜色QColor c = QColorDialog::getColor(QColor("red"),this,"选择颜色");if(c.isValid() == true){//使用颜色ui->textEdit->setTextColor(c);    //更改选中的文字颜色//设置选中的背景颜色// ui->textEdit->setTextBackgroundColor(c);}}void Mywidget::on_openfirebtn_clicked()
{// 调用静态成员函数,让用户选择打开的文件QString filename = QFileDialog::getOpenFileName(this,      //父组类"选择文件","./",      //起始路径"all(*.*)::image(*.jpg*.gif)::源文件(*.cpp)"    //过滤器);qDebug() << filename;//文件操作//1实例化一个文本对象QFile file(filename);//2,打开文件if(file.open(QFile::ReadOnly) == false){QMessageBox::information(this,"提示","文件打开失败");return ;}//3 读取文件内容QByteArray msg = file.readAll();//4将内容放到编辑器中ui->textEdit->setText(msg);//5关闭文件file.close();}void Mywidget::on_cunbtn_clicked()
{QString filename = QFileDialog::getSaveFileName(this,"保存文件","./","all(*.*)");//文件操作QFile file(filename);QByteArray msg = ui->textEdit->toPlainText().toLatin1();if(file.open(QFile::WriteOnly) == false){QMessageBox::information(this,"提示","文件打开失败");return ;}file.write(msg);file.close();}

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

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

相关文章

labview技术交流-将时间字符串转换成时间格式

应用场景 我们在数据库中设计了datetime类型的字段&#xff0c;比如字段名就叫“保存时间”&#xff0c;当我们使用labview将表中数据读取出来后datetime类型的数据是以字符串的格式显示的。而我们想计算两条数据“保存时间”的间隔时间时&#xff0c;用字符串类型自然是没法计…

OpenMV 图像串口传输示例

注意&#xff1a;本程序根据 OpenMV采集图片通过串口发送&#xff0c;PC接收并保存为图片 更改。 一、例程说明 这个例程主要实现了以下功能: 1. OpenMV 端采集图像:使用OpenMV开发板上的摄像头采集实时图像数据。 2. 通过串口传输图像数据:将采集到的图像数据打包成字节流,…

idea 项目 修改项目文件名 教程

文章目录 目录 文章目录 修改流程 小结 概要流程技术细节小结 概要 原项目名 修改流程 关掉当前项目的idea页面 修改之后的文件名 重新打开idea。选择项目打开项目页面 技术细节 出现下面这个问题&#xff0c;可以参考作者新的一编文章idea开发工具 项目使用Spring框架开发解…

【Linux】25. 网络基础(一)

网络基础(一) 计算机网络背景 网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 其实本质上一台计算机内部也是一个小型网络结构(如果我们将计算机内部某个硬件不存放在电脑中&#xff0c;而是拉根长长的线进行连接。这其实也就是网…

在做题中学习(51): x的平方根

69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09;​​​​​​ 解法&#xff1a;二分查找 思路&#xff1a;看示例2&#xff1a; 可以看到8的平方根是2.82&#xff0c;在2^2和3^2之间&#xff0c;所以可以把数组分为两部分&#xff0c;(具有二段性) 而2.82去掉小数部分…

【Kolmogorov-Arnold网络 替代多层感知机MLPs】KAN: Kolmogorov-Arnold Networks

KAN: Kolmogorov-Arnold Networks 论文地址 代码地址 知乎上的讨论&#xff08;看一下评论区更正&#xff09; Abstract Inspired by the Kolmogorov-Arnold representation theorem, we propose Kolmogorov-Arnold Networks (KANs) as promising alternatives to Multi-Layer…

【OceanBase 系列】—— OceanBase v4.3 特性解读:查询性能提升之利器列存储引擎

原文链接&#xff1a;OceanBase 社区 对于分析类查询&#xff0c;列存可以极大地提升查询性能&#xff0c;也是 OceanBase 做好 HTAP 和 OLAP 的一项不可缺少的特性。本文介绍 OceanBase 列存的实现特色。 OceanBase从诞生起就一直坚持LSM-Tree架构&#xff0c;不断打磨功能支…

2020 年国考【计算机专业】真题及答案

真题及答案 第一部分数学基础课程 一、&#xff08;共 5 分&#xff09;用逻辑符号表达下列语句&#xff08;论域为包含一切事物的合集&#xff09; &#xff08;2 分&#xff09;确诊者并不都有症状&#xff08;注&#xff1a;需给出两种形式表达, 一种用存在量词, 一种用全称…

python魔法方法是什么

魔法方法是python内置方法&#xff0c;不需要主动调用&#xff0c;存在的目的是为了给python的解释器进行调用&#xff0c;几乎每个魔法方法都有一个对应的内置函数&#xff0c;或者运算符&#xff0c;当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法&…

MVC与MVVM架构模式

1、MVC MVC&#xff1a;Model-View-Controller&#xff0c;即模型-视图-控制器 MVC模式是一种非常经典的软件架构模式。从设计模式的角度来看&#xff0c;MVC模式是一种复合模式&#xff0c;它将多个设计模式结合在一种解决方案中&#xff0c;从而可以解决许多设计问题。 MV…

【3D目标检测】常见相关指标说明

一、mAP指标 mean Average Precision&#xff08;平均精度均值&#xff09;&#xff0c;它是目标检测和信息检索等任务中的重要性能指标。mAP 通过综合考虑精度和召回率来衡量模型的总体性能。 1.1 精度&#xff08;Precision&#xff09; 表示检索到的目标中实际为正确目标…

Spring Task及订单状态定时处理

1&#xff1a;Spring Task概念&#xff1a; Spring Task 是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑 定时任务的理解 定时任务即系统在特定时间执行一段代码&#xff0c;它的场景应用非常广泛&#xff1a; 购买游戏的月卡会员后&a…

Centos7网络处理name or service not known

1、编辑->虚拟网络编辑器 2、查看本机的ip 3、 /etc/sysconfig/network-scripts/ 查看文件夹下面的 ifcfg-eth33 后面的33可能不一样 vi /etc/resolv.conf 编辑文件添加以下DNS nameserver 114.114.114.114 4、设置本机的网络 5、ping www.baidu.com 先重启…

第50期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

全双工音频对讲模块-支持空中升级、多级无线中继

SA618F30是一款高集成的大功率全双工无线音频模块&#xff0c;发射功率高达32dBm。该音频模块简化接口&#xff0c;只需外接音频功放或麦克风即可作为一个小型对讲机&#xff0c;方便快捷嵌入到各类手持设备中。支持多级无线中继&#xff0c;支持OTA空中升级。 SA618F30配备1W…

Java快速入门系列-11(项目实战与最佳实践)

第十一章&#xff1a;项目实战与最佳实践 11.1 项目规划与需求分析项目规划需求分析实例代码 11.2 系统设计考虑实例代码 11.3 代码实现与重构实例代码 11.4 性能优化与监控实例代码 11.5 部署与持续集成/持续部署(CI/CD)实例代码 11.1 项目规划与需求分析 在进行任何软件开发…

Hikyuu-PF-银行股轮动交易策略实现

今天&#xff0c;带来的是“如何使用 Hikyuu 中的投资组合来实现银行股轮动交易策略”。 这个策略的逻辑很简单&#xff1a;持续持有两支市净率最低银行股&#xff0c;然后每月换仓 定义回测周期与回测标的 同样&#xff0c;首先定义回测周期&#xff1a; # 定义回测日期 …

了解内存函数

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 前言 内存函数不止malloc、calloc、realloc、free还有memcpy、memmove、memset、memcmp。前四个的头文件是<stdlib.h>,后四个的头文件是<strin…

Ansible----playbook模块之templates模块、tags模块、roles模块

目录 引言 一、templates模块 &#xff08;一&#xff09;关键信息 &#xff08;二&#xff09;实际操作 1.定义主机组 2.设置免密登录 3.分别建立访问目录 4.定义模板文件 5.创建playbook文件 6.执行剧本 7.验证结果 二、tags模块 &#xff08;一&#xff09;创建…

《QT实用小工具·六十一》带动画的三角形指示箭头

1、概述 源码放在文章末尾 该项目实现了一个带动画效果的三角形指示箭头&#xff0c;项目demo演示如下所示&#xff1a; 用法 interestingindicate.h interestingindicate.cpp 放到工程中&#xff0c;直接使用即可。 注意&#xff1a;建议绝对布局&#xff0c;手动指定 wid…