学QT的第三天~

ikun登录界面完善

#include "mywidget.h"
 
void MyWidget::bth1()
{
    if(edit3 ->text()=="520cxk"&&edit4 ->text()=="1314520")
    {
        //1.实例化一个QmessageBox类的对象
        QMessageBox box(QMessageBox::Information, //图标
                        "恭喜你",          //对话框
                        "登陆成功?",             //对话框文本
                        QMessageBox::Ok, //提供的按钮
                        this);                       //父组件
        //2.调用成员函数,进入执行态
        //exec函数的返回值是用户点击的对话框上面的按钮
        int res =box.exec();
 
        //3.对用户点击的按钮进行判断
        if(res==QMessageBox::Ok)
        {
            qDebug()<< "你好,真爱粉";
            jump();
            this->close();
 
        }
 
 
 
    }
    else
    {
        speecher->say("死黑粉,唉哟,你干嘛!");
        int bth = QMessageBox::warning(this,  //父组件
                                     "密码错误",   //标题
                                     "小黑子,露出鸡脚了吧,是否重新登录",  //文本内容
                                      QMessageBox::Yes|QMessageBox::No, //提供的按钮
                                      QMessageBox::Yes);//默认选中的按钮
        if(bth==QMessageBox::Yes)
        {
            this->edit3->clear();
            this->edit4->clear();
        }else if(bth==QMessageBox::No)
        {
              this->close();
        }
 
 
    }
}
 
void MyWidget::line()
{
    QString str=edit3->text();
 
    if(str.size()<6)
    {
        this->bth2->setStyleSheet("background-color:red");
    }else if(str.size()==6)
    {
        this->bth2->setStyleSheet("background-color:green");
    }else
    {
        this->bth2->setStyleSheet("background-color:yellow");
    }
}
 
void MyWidget::bth3_myslots()
{
    //1.实例化一个QmessageBox类的对象
    QMessageBox box(QMessageBox::Question, //图标
                    "问题对话框",          //对话框
                    "你确定要离开哥哥吗?",             //对话框文本
                    QMessageBox::Yes|QMessageBox::No, //提供的按钮
                    this);                       //父组件
    //2.调用成员函数,进入执行态
    //exec函数的返回值是用户点击的对话框上面的按钮
    int res =box.exec();
 
    //3.对用户点击的按钮进行判断
    if(res==QMessageBox::Yes)
    {
        this->close();
    }else if(res==QMessageBox::No)
    {
            qDebug()<<"要荔枝";
 
    }
}
 
 
 
MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
     speecher =new QTextToSpeech;
    //============窗口相关设置==========//
    this->resize(427,330);
    this->setFixedSize(427,330);
    //设置图标
    this->setWindowIcon(QIcon("C:\\Users\\Admin\\Desktop\\pictrue\\dahz.jpg"));
    //设置窗口标题
    this->setWindowTitle("唉哟,你干嘛!");
    //去掉头部
    this->setWindowFlag(Qt::FramelessWindowHint);
 
 
 
    //=========标签相关设置=============//
    QLabel *lab01=new QLabel(this);
    //设置大小
    lab01->resize(427,330);
 
    //设置动图
    QMovie *mv= new QMovie("C:\\Users\\Admin\\Desktop\\pictrue\\aix.gif");
    //将动图放入标签中
    lab01->setMovie(mv);
    //让动图动起来
    mv->start();
    //自动适应
    lab01->setScaledContents(true);
    //创建一个标签
    QLabel *lab1=new QLabel("密码:",this);
    lab1->move(155,195);
    lab1->resize(100,50);
 
    //创建第二个标签
    QLabel *lab2=new QLabel("ikun:",this);
    lab2->move(155,135);
    lab2->resize(100,50);
    //创建第三个标签
    QLabel *lab3=new QLabel(this);
    lab3->move(100,135);
    lab3->resize(50,50);
    lab3->setPixmap(QPixmap(":/pictrue/xhz.webp"));
    lab3->setScaledContents(true);
    //创建第四个标签
    QLabel *lab4=new QLabel(this);
    lab4->move(100,195);
    lab4->resize(50,50);
    lab4->setPixmap(QPixmap(":/pictrue/dahz.jpg"));
    lab4->setScaledContents(true);
    //创建第五个标签
    QLabel *lab5=new QLabel(this);
    lab5->move(395,0);
    lab5->resize(30,30);
    lab5->setPixmap(QPixmap(":/pictrue/cancel.png"));
    lab5->setScaledContents(true);
    //创建第六个标签
    QLabel *lab6=new QLabel(this);
    lab6->move(155,20);
    lab6->resize(150,80);
    //设置动图
    QMovie *mv2= new QMovie(":/pictrue/daf.gif");
    //将动图放入标签中
    lab6->setMovie(mv2);
    //让动图动起来
    mv2->start();
    //自动适应
    lab6->setScaledContents(true);
 
 
 
 
    //=========行编译器相关设置=============//
    //创建第一个行编译器
    edit4 =new QLineEdit(this);
    edit4->move(200,210);
    edit4->setPlaceholderText("密码");
    edit4->setEchoMode(QLineEdit::Password);
 
    //创建第二个行编译器
     edit3 =new QLineEdit(this);
     edit3->move(200,150);
     //设置占位
     edit3->setPlaceholderText("QQ号/手机号/邮箱");
    connect(this->edit3,&QLineEdit::textChanged,this,&MyWidget::line);
 
     //=========按钮设置==============//
     bth2 =new QPushButton("登录",this);
     bth2->move(200,260);
     bth2->resize(60,25);
     //样式函数setStylesheet()
     bth2->setStyleSheet("background-color:rgb(8,189,253)");
     connect(this->bth2,&QPushButton::clicked,this,&MyWidget::bth1);
     bth3 =new QPushButton("退出",this);
     bth3->move(280,260);
     bth3->resize(60,25);
     //样式函数setStylesheet()
     bth3->setStyleSheet("background-color:rgb(8,189,253)");
     connect(this->bth3,&QPushButton::clicked,this,&MyWidget::bth3_myslots);
 
}
 
MyWidget::~MyWidget()
{
}

文本编辑器完善

#include "widget.h"
#include "ui_widget.h"
 
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}
 
Widget::~Widget()
{
    delete ui;
}
 
 
void Widget::on_btn1_clicked()
{
    //调用字体对话框,用于选择字体
    bool ok=false;
    QFont f=QFontDialog::getFont(&ok,
                                 QFont("宋体",10,10,true),
                                 this,
                                 "选择字体");
    if(ok)
    {
        ui->textEdit->setCurrentFont(f);
    }
}
 
void Widget::on_btn2_clicked()
{
    QColor c=QColorDialog::getColor(QColor("red"),
                                    this,
                                    "选择颜色");
    if(c.isValid()==true)
    {
        ui->textEdit->setTextBackgroundColor(c);
    }
}
 
void Widget::on_btn3_clicked()
{
    QString fileName= QFileDialog::getOpenFileName(this,    //父组件
                                               "选择文件",  //对话框
                                               "./",       //起始路径
                                              "all(*.*);;images(*.pang *.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 Widget::on_btn4_clicked()
{
    QString fileName= QFileDialog::getOpenFileName(this,    //父组件
                                               "选择文件",  //对话框
                                               "./",       //起始路径
                                              "all(*.*);;images(*.pang *.jpg *.gif);;源文件(*.cpp)");//过滤器
     qDebug()<< fileName;
    //文件操作
    //1.通过文件路径实例化一个文件对象
    QFile file(fileName);
 
    //2.打开文件
    if(file.open(QFile::WriteOnly)==false)
    {
        QMessageBox::information(this,"提升","文件打开失败");
        return;
    }
    //3.获取取文本框中的内容
     QString str=ui->textEdit->toPlainText();
     QByteArray bytearray =str.toLatin1();
     char *ch=bytearray.data();
 
    //4.将读取出来的数据,展示到文本编译器中
      file.write(ch);
 
    //5.关闭文件
    file.close();
}

                

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文字转语音软件下载教程

文字转语音软件下载教程 一&#xff0c;Whisper下载二&#xff0c;ggml-medium语言模型下载三&#xff0c;导入模型下载四&#xff0c;使用方法 一&#xff0c;Whisper下载 网址&#xff1a;https://bittly.cc/uL9xs 下拉选择&#xff1a; 进入下载页面&#xff0c;下载Whis…

分享一些跟客户降价时候可以用的方法

这几天碰到一个沙特的客户&#xff0c;一开始发了一个别人的设计图来问价格。因为产品都是根据图纸定制的&#xff0c;我就问他是否确定了场地&#xff0c;有没有详细的场地尺寸&#xff0c;客户说有&#xff0c;稍后就给。 过了一天&#xff0c;他就给了一个超大的尺寸&#x…

图像处理之SVD检测显示屏缺陷(C++)

图像处理之SVD检测显示屏缺陷&#xff08;C&#xff09; 文章目录 图像处理之SVD检测显示屏缺陷&#xff08;C&#xff09;前言一、SVD算法简介二、代码实现总结 前言 显示屏缺陷检测是机器视觉领域的一处较广泛的应用场景&#xff0c;显示屏主要有LCD和OLED&#xff0c;缺陷类…

爬虫:爬取豆瓣电影

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 上篇我们将到如何利用xpath的规则&#xff0c;那么这一次&#xff0c;我们将通过案例来告诉读者如何使用Xpath来定位到我们需要的数据&#xff0c;就算你不懂H5代码是怎么个嵌套或者十分复…

cesium 雷达遮罩(电弧球效果)

cesium 雷达遮罩(电弧球效果) 以下为源码直接复制可用 1、实现思路 通过修改“material”材质来实现轨迹球效果 2、代码示例 2.1 index.html <!DOCTYPE html> <html lang="en"><head><!

Python | Leetcode Python题解之第70题爬楼梯

题目&#xff1a; 题解&#xff1a; class Solution:def climbStairs(self, n: int) -> int:a, b 1, 1for _ in range(n - 1):a, b b, a breturn b

C#winfrom三层架构实现简单课程管理系统管理系统,三层架构实现增删改查

1. 项目展示 1.1登录展示 1.2添加课程信息展示 1.3课程信息管理-查询-修改-删除 1.4修改登录密码 2.项目功能介绍&#xff08;图&#xff09; 3.数据库设计 3.1 教师表设计 3.2 课程分类表 3.3 课程信息表 4. 创建样式界面 winfrom 超详细UI创建过程 实现双色球选号器UI界面…

在国企分公司做信息宣传新闻投稿的经验分享

作为一名国企分公司的信息宣传工作者,我亲历了从传统投稿方式到数字化转型的全过程,这段经历既充满了挑战,也收获了成长。回首最初的日子,那些用邮箱投稿的时光,至今仍让我感慨万千。 初尝辛酸,邮箱投稿的艰难岁月 刚接手信息宣传工作时,我满腔热情,却很快被现实的冷水浇了个透…

Blender材质,纹理,UV

1.材质Material&#xff0c;用于描述物体的表面性质&#xff0c;包含以下基本属性 -基础色 -金属/非金属 -粗糙度 -透光度 -凹凸细节 添加材质步骤&#xff1a; 1&#xff09;切换到材质预览模式 2&#xff09;打开材质面板 3&#xff09;添加一个材质&#xff0c;包括材…

node.js对数据库mysql的连接与操作(增、删、改、查、五种SQL语法)

前提&#xff1a;先在vscode终端下载安装mysql&#xff1a;npm install mysql -save 步骤总结&#xff1a; (1)建立与数据库的连接 (2)做出请求&#xff1a; 实际上就是操作mysql里的数据。增删改查 insert、delete、updata、select (3)通过回调函数获取结果 一、什么是SQ…

spring高级篇(七)

1、异常处理 在DispatcherServlet中&#xff0c;doDispatch(HttpServletRequest request, HttpServletResponse response) 方法用于进行任务处理&#xff1a; 在捕获到异常后没有立刻进行处理&#xff0c;而是先用一个局部变量dispatchException进行记录&#xff0c;然后统一由…

ssm+vue的私人健身和教练预约管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的私人健身和教练预约管理系统(有报告)。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通…

字体设计_西文字体设计(英文字体设计)

一 西文字体设计基础知识 设计目标和历史成因 设计目标&#xff1a;让眼睛看着舒服的字体 那什么样的字体让眼睛看着舒服呢&#xff1f; 让眼睛看着舒服的字体造型其实是我们记忆里的手写体、自然造型。 所以就能理解西文字体为什么同一笔画&#xff0c;有的地方粗有的地方…

flowable一对并发网关跳转的分析

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…

数字孪生项目的开发

数字孪生项目开发涉及多学科知识和技术&#xff0c;因此存在以下技术难点&#xff0c;数字孪生项目开发是一项复杂的工程&#xff0c;需要攻克多项技术难关。随着技术的不断发展&#xff0c;数字孪生技术将得到更加广泛的应用&#xff0c;并在各行各业发挥更大的作用。北京木奇…

C语言 函数的嵌套与递归 调用

本文 我们来说函数的嵌套调用和递归调用 在很多大型项目中 我们肯定不可能将所有逻辑都写在一个函数中 肯定要按功能拆解成多个特定的功能函数 函数并不允许嵌套调用&#xff0c;但是 允许在逻辑代码中嵌套调用 所谓函数嵌套调用 就是在一个函数中调用另一个函数&#xff0c;而…

双向BFS算法学习

双向BFS算法学习 推荐练习题 力扣“127”题&#xff1a;单词接龙 “752”题&#xff1a;打开轮盘锁 这里推荐一篇力扣题解 双向BFS 这里使用打开轮盘锁的题干进行举例&#xff1a; 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字&#xff1a; ‘0’, ‘1’, ‘2’,…

Django项目中的Nginx+uWSGI

Django项目中的NginxuWSGI部署 配合另一篇博客共同饮用Django项目服务器部署&#xff08;2024最新&#xff09; 一&#xff1a;Nginx uWSGI部署框架 用户浏览器向nginx发送请求&#xff0c;nginx判断请求是动态海事静态&#xff0c;如果是静态请求&#xff0c;则直接返回静态…

Redis系列-1 Redis介绍

背景&#xff1a; 本文介绍Redis相关知识&#xff0c;包括Redis的使用、单线程机制、事务、内存过期和淘汰机制。后续将在《Redis系列-2 Redis持久化机制》中介绍Redis基于RDB和AOF的持久化机制&#xff1b;在《Redis系列-3 Redis缓存问题》中介绍缓存击穿、缓存穿透、缓存雪崩…

快速排序(java细节实现)

目录 快速排序: Hoare版: 挖坑法 快速排序的优化 快速排序的非递归实现 小结 从小到大排序 快速排序: 基本思想为&#xff1a;任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&…