QT--3

 Qt

1>将文本编辑器完整实现

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->resize(800,600);
    edit1 = new QTextEdit(this);
    edit1->resize(600,600);
    //字体
    btnziti = new QPushButton("字体",this);
    btnziti->resize(150,50);
    btnziti->move(625,50);
    //颜色
    btncolor = new QPushButton("颜色",this);
    btncolor->resize(150,50);
    btncolor->move(625,125);
    //打开文件
    btnopen = new QPushButton("打开文件",this);
    btnopen->resize(150,50);
    btnopen->move(625,200);
    //保存文件
    btnsave = new QPushButton("保存文件",this);
    btnsave->resize(150,50);
    btnsave->move(625,275);
    connect(btnziti,&QPushButton::clicked,[=](){
        bool ok = false;
        QFont f = QFontDialog::getFont(&ok,QFont("宋体",10,10,true),this,"选择字体");
        if(ok)
        {
            edit1->setCurrentFont(f);
        }
    });
    connect(btncolor,&QPushButton::clicked,[=](){

        QColor c = QColorDialog::getColor(QColor("red"),this,"选择颜色");
        if(c.isValid() == true)
        {
            edit1->setTextBackgroundColor(c);
        }
    });
    connect(btnopen,&QPushButton::clicked,this,&Widget::openfile);
    connect(btnsave,&QPushButton::clicked,this,&Widget::savefile);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::openfile()
{
    QString filename = QFileDialog::getOpenFileName(this,"选择文件","./","all(*.*)");
    QFile file(filename);
    if(file.open(QFile::ReadOnly)==false)
    {
        QMessageBox::information(this,"提示","文件打开失败");
        return;
    }
    QByteArray msg = file.readAll();
    edit1->setText(msg);
    file.close();
}

void Widget::savefile()
{
    QString filename = QFileDialog::getOpenFileName(this,"选择文件","./","all(*.*)");
    QFile file(filename);
    if(file.open(QFile::WriteOnly)==false)
    {
        QMessageBox::information(this,"提示","文件打开失败");
        return;
    }
    QString msg = edit1->toPlainText();
    file.write(msg.toUtf8().data());
    file.close();
}

2>重新将登录框实现完整

#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //=======窗口相关设置======
    this->resize(680,520);
    this->setFixedSize(680,520);
    this->setWindowTitle("Tim");
    this->setWindowFlag(Qt::FramelessWindowHint);
    this->setStyleSheet("background-color:rgb(255,255,255)");

    //=======标签相关设置======
    QLabel *lab1 = new QLabel(this);
    lab1->resize(400,520);
    lab1->setPixmap(QPixmap(":/pictrue/tim.png"));

    //=======行编辑器相关设置=======
    edit1 = new QLineEdit(this);
    edit1->resize(220,50);
    edit1->move(430,270-50);
    edit1->setPlaceholderText("QQ号码/手机号/邮箱");

    edit2 = new QLineEdit(this);
    edit2->resize(220,50);
    edit2->move(430,270);
    edit2->setPlaceholderText("密码");
    edit2->setEchoMode(QLineEdit::Password);

    //=======按钮相关设置=====
    QPushButton *btn1 = new QPushButton(this);
    btn1->resize(64,64);
    btn1->move(500-32,120-32);
    btn1->setStyleSheet("background-color:rgb(17,145,255);border-radius:32px");
    btn1->setIcon(QIcon(":\\pictrue\\qie.png"));

    QPushButton *btn2 = new QPushButton(this);
    btn2->resize(64,64);
    btn2->move(580-32,120-32);
    btn2->setStyleSheet("background-color:rgb(245,245,245);border-radius:32px");
    btn2->setIcon(QIcon(":\\pictrue\\wechat.png"));

    QPushButton *btn3 = new QPushButton("记住密码",this);
    btn3->resize(74,25);
    btn3->move(430,440);
    btn3->setIcon(QIcon(":\\pictrue\\kuang.png"));

    QPushButton *btn4 = new QPushButton("自动登陆",this);
    btn4->resize(74,25);
    btn4->move(430,470);
    btn4->setIcon(QIcon(":\\pictrue\\kuang.png"));

    QPushButton *btn5 = new QPushButton("找回密码",this);
    btn5->resize(74,25);
    btn5->move(600,440);

    QPushButton *btn6 = new QPushButton("注册密码",this);
    btn6->resize(74,25);
    btn6->move(600,470);

    btn7 = new QPushButton(this);
    btn7->resize(25,25);
    btn7->move(640,12);
    btn7->setIcon(QIcon(":\\pictrue\\x.png"));

    QPushButton *btn8 = new QPushButton(this);
    btn8->resize(25,25);
    btn8->move(605,12);
    btn8->setIcon(QIcon(":\\pictrue\\set.png"));

    btn9 = new QPushButton("登录",this);
    btn9->resize(220,50);
    btn9->move(430,270+80);

 //   btn9->setStyleSheet("background-color:red;border-radius:5px");
    connect(edit1, &QLineEdit::textChanged, this, &Widget::mySlots);
    connect(edit2, &QLineEdit::textChanged, this, &Widget::mySlots);
    connect(btn7, &QPushButton::clicked, this, &Widget::clicked);
    connect(btn9, &QPushButton::clicked, [&](){
                if(edit1->text()=="123456"&&edit2->text()=="123456")
                {
                    int res = QMessageBox::information(this,"登录","登录成功",QMessageBox::Ok,QMessageBox::Ok);
                    if(res == QMessageBox::Ok)
                    {
                        emit jump();
                        this->close();
                    }
//                    qDebug() << "denglu" ;
//                    emit jump();
//                    this->close();
                }
                else
                {
                    QMessageBox box(QMessageBox::Critical,"问题","登录失败,是否重新登录",QMessageBox::Ok|QMessageBox::No,this);
                    box.setButtonText(QMessageBox::No,"no");
                    box.setButtonText(QMessageBox::Ok,"yes");
                    int res = box.exec();
                    if(res == QMessageBox::Ok)
                    {
                        edit1->clear();
                        edit2->clear();
                    }
                    else if(res == QMessageBox::No)
                    {
                        this->close();
                    }
                }

       });
}
Widget::~Widget()
{
    delete ui;
}
void Widget::clicked()
{
    QMessageBox box(QMessageBox::Question,"问题","您是否确认退出登录",QMessageBox::Ok|QMessageBox::No,this);
    box.setButtonText(QMessageBox::No,"no");
    box.setButtonText(QMessageBox::Ok,"yes");
    int res = box.exec();
    if(res == QMessageBox::Ok)
    {
        this->close();
    }
    else if(res == QMessageBox::No)
    {

    }

}
void Widget::mySlots()
{
    if(edit1->text().size()>=6&&edit2->text().size()>=6)
    {
        btn9->setEnabled(true);
//        btn9->setStyleSheet("background-color:green;border-radius:5px");
    }
    else
    {
        btn9->setEnabled(false);
//        btn9->setStyleSheet("background-color:red;border-radius:5px");
    }
}

#include "second.h"
#include "ui_second.h"

void Second::fun()
{
    this->show();
}

Second::Second(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Second)
{
    ui->setupUi(this);
}

Second::~Second()
{
    delete ui;
}

 

 

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

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

相关文章

计算机网络技术主要学什么内容,有哪些课程

计算机网络技术专业是一个涉及理论与实践紧密结合的学科&#xff0c;主要学习内容有计算机网络基础、网络设备技术、网络编程等内容&#xff0c;以下是上大学网&#xff08;www.sdaxue.com&#xff09;整理的计算机网络技术主要学什么内容&#xff0c;供大家参考&#xff01; 基…

linux命令之scp

今天遇到一个情况&#xff0c;内网环境不能联网没法下载最新的tcpdump。但是本身有个系统的tcpdump是最新版的&#xff0c;我不想rz下载再sz上传&#xff0c;想到可以用scp来直接传输文件&#xff0c;刚好来了解一下。 用法解释 scp&#xff08;secure copy&#xff09;命令可…

《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、第二版十四讲课本源码下载1. 安装git工具 二、Pangolin下载和安装1. 源码下载2. Pangolin的安装(1) 安装依赖项(2) 源码编译安装(2) 测试是否安装成功 二、…

SpringCloud 集成consul,消费者报I/O error on GET request for...

创建消费者微服务&#xff0c;去调用生产者微服务的请求过程中&#xff0c;出现以下错误&#xff1a; 报错原因 因为在使用SpringCloudAlibaba中的Nacos框架时&#xff0c;自动整合了SpringCloud中的Ribbon框架中的负载均衡&#xff0c;因为微服务提供者有两个&#xff0c;在消…

C++初识多态(1)

1.多态要解决的问题&#xff08;引入&#xff09; 任何一种机制的存在&#xff0c;必然是有其存在的意义的&#xff0c;例如我们前面学过的函数重载&#xff0c;运算符重载&#xff0c;以及引用等等&#xff0c;都是解决一些特殊问题的&#xff1b; 下面通过一些具体的例子&a…

类和对象、this指针、类里的默认生成函数

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包+YOLOv5结合Dobot机械臂实现智能垃圾分类

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『仪酷LabVIEW AI工具包案例』 &#x1f4d1;上期文章&#xff1a;『【YOLOv9】实战二&#xff1a;手把手教你使用TensorRT实现YOLOv…

升级PQC后,「谷歌浏览器」却频频报错......

上周Chrome 124发布后&#xff0c;默认启用了新的抗量子X25519Kyber768封装机制&#xff0c;不过&#xff0c;一些谷歌Chrome用户在使用后反应说&#xff0c;新版本的浏览器在连接网站、服务器和防火墙时出现了问题。 谷歌在8月份开始测试后量子安全TLS密钥封装机制&#xff0c…

嫦娥六号近月制动成功,建立月球基地又迈进一步!

嫦娥六号探测器在近月制动的关键时刻&#xff0c;北京航天飞行控制中心内弥漫着紧张而庄重的氛围。每一个航天科技工作者都屏息以待&#xff0c;他们的眼神中充满了期待与自豪。随着一系列精妙绝伦的指令如同琴弦上的音符般流畅地奏响&#xff0c;嫦娥六号探测器在万众瞩目的目…

使用SpringBoot+Redis做一个排行榜【推荐】

SpringBoot Redis实现排行榜 一、Zset有序集合介绍 Zset是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分( score) ,这个评分( score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的&#xff0c;但是评分可以是重复了…

通讯录项目—顺序表实现

在上次我介绍顺序表后相信大家对顺序表有了一定的了解&#xff0c;现在就让我们来练练如何用它&#xff0c;这篇是在顺序表基础上新增的(建议看看线性表—顺序表实现-CSDN博客)。 目录 通讯录简介 创建用户信息 适配和理解通讯录 功能实现 初始化通讯录 销毁通讯录 增加…

为什么跑腿越来越受到年轻人的青睐

跑腿服务越来越受到年轻人的青睐&#xff0c;主要源于以下几个方面的原因&#xff1a; 1. 便捷快速&#xff1a;在快节奏的现代生活中&#xff0c;年轻人追求的是效率和速度。跑腿服务提供了一种即时、便捷的解决方案&#xff0c;使他们能够在繁忙的生活和工作中节省时间和精力…

鸿蒙开发实战:智能日志定位与高效调试技巧

前言 在鸿蒙系统的开发过程中,日志定位是一个关键的调试步骤。想象一下,如果你能够轻松地在繁杂的代码中快速定位到日志产生的位置,那将会极大地提高你的开发效率。今天,我将分享一套代码,它能帮助你实现这一目标。 效果展示 当你使用这套代码时,日志的打印效果将如下…

qt开发解压缩zip文件实现

作者开发环境&#xff1a;Qt5.8 &#xff0c;win10 总体思路&#xff1a;首先我们编译zip源码&#xff0c;生成zip的动态库&#xff1b;然后再编译quazip源码&#xff0c;得到quazip的动态库&#xff1b;最后在我们的程序中去调用。 详细步骤&#xff1a; 1、编译zlib zlib…

Day22 代码随想录打卡|字符串篇---实现 strStr()

题目&#xff08;leecode T28&#xff09;&#xff1a; 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1…

WSL2中使用USB串口实验

一、主要参考网站: Connect USB devices | Microsoft Learn 连接 USB 设备 | Microsoft Learn 二、安装usbipd-win WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目 PS C:\Users\issta> winget install --interactive --exact dorssel.usbipd-win …

yaml配置文件的在深度学习中的简单应用

1 .创作灵感 小伙伴们再阅读深度学习模型的代码的时候&#xff0c;经常会遇到yaml格式的配置文件。用这个配置文件是因为我们在训练模型的时候会涉及很多的参数&#xff0c;如果这些参数东一个&#xff0c;西一个&#xff0c;我们调起来的时候就会很不方便&#xff0c;所以用y…

Springboot+vue项目人事管理系统

开发语言&#xff1a;Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springbootvue JDK版本&#xff1a;jdk1.8 文末获取源码 系统主要分为管理员和普通用户和员工三部分&#xff0c;主要功能包括个人中心&#xff0c;普通用户管理&…

4.用python爬取保存在text中的格式为m3u8的视频

文章目录 一、爬取过程详解1.寻找视频的m3u8链接2.从网页源码中寻找视频的m3u8链接的第二部分内容3.从视频的m3u8链接获取视频 二、完整的代码 一、爬取过程详解 1.寻找视频的m3u8链接 这个文档承接了爬虫专栏的 第一节.python爬虫爬取视频网站的视频可下载的源url&#xff0…

头歌实践教学平台:CG3-v2.0-图形几何变换

第1关&#xff1a;平移、缩放、旋转正方体 一. 任务描述 1. 本关任务 (1) 理解几何变换基本原理, 掌握平移、旋转、缩放变换的方法; (2) 根据平移算法原理补全translation、scale、rotation_x、rotation_y和rotation_z函数; (3) 根据几何变换基本原理,将main函数中的transla…
最新文章