qt day 3

server/2024/11/25 20:52:39/

优化登录框,点击登录按钮,如果账号和密码匹配,则弹出 信息对话框 给出提示信息“登录成功”,并给出一个 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.ppmy.cn/server/38322.html

相关文章

前端css中径向渐变(radial-gradient)的使用

前端css中径向渐变的使用 一、前言二、主要内容说明&#xff08;一&#xff09;、径向渐变的形状1.椭圆形渐变&#xff08;ellipse&#xff09;&#xff0c;源码12.源码1运行效果3.圆形渐变&#xff08;circle&#xff09;&#xff0c;源码24.源码2运行效果 &#xff08;二&…

通义千问-7B-Chat-Int4

通义千问-7B-Chat-Int4 代码仓库地址&#xff1a;https://github.com/QwenLM/Qwen 安装 克隆我们的仓库并跳转到相应目录 git clone https://www.modelscope.cn/qwen/Qwen-7B-Chat-Int4.git cd Qwen-7B-Chat-Int4 2. 创建 conda 环境 conda create -n qwenint4 python3.8…

快速排序应用

题目描述 著名的快速排序算法里有一个经典的划分过程:通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定一个划分后的正整数序列,请问有多少个元素可能是划分过程中选取的主元? 并按升序输出这些主元。 解…

4. 寻找两个正序数组的中位数

题目描述 2个有序数组&#xff08;保证不能同时为空&#xff09;长度分别为m&#xff0c;n&#xff1b;求他们的中位数。 要求时间复杂度O(long(mn))。 解题思路 题目的要求可以转述为求第k大个数&#xff0c;k可能为1个数&#xff0c;可能为2个数。 k(mn)/2 num1[k/2]表示…

vue 脚手架 创建vue3项目

1、nodeJS下载地址&#xff1a;下载 Node.js 2、安装 nodeJS 打开cmd窗口检查是否安装成功&#xff1a;node -v&#xff08;如果显示出了版本号&#xff0c;那么说明安装成功了&#xff09; 设置阿里云镜像&#xff1a;npm config set registry https://registry.npmmirror.co…

苍穹外卖总结

1 软件开发流程 需求分析->设计->编码->单元测试->集成测试->上线运维 1.1 需求分析 交付结果&#xff1a;完成需求规格说明书、产品原型 需求规格说明书&#xff1a;系统定义、应用环境、功能规格、性能需求 产品原型&#xff1a;一般通过网页的形式展示当…

vue如何进行如何进行移动端的响应式布局

在Vue中进行移动端的响应式布局&#xff0c;通常涉及使用CSS媒体查询、灵活的盒模型布局、以及可能的第三方库或框架&#xff0c;如Vue UI库。下面是一个简单的Vue组件示例&#xff0c;展示了如何构建移动端的响应式布局&#xff1a; 首先&#xff0c;确保你有一个Vue项目。如…

pyqt 按钮常用格式Qss设置

pyqt 按钮常用格式Qss设置 QSS介绍按钮常用的QSS设置效果代码 QSS介绍 Qt Style Sheets (QSS) 是 Qt 框架中用于定制应用程序界面样式的一种语言。它类似于网页开发中的 CSS&#xff08;Cascading Style Sheets&#xff09;&#xff0c;但专门为 Qt 应用程序设计。使用 QSS&am…