QT_day3:信号和槽的连接方式

1、使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数

将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空

2、完成一个使用qss的登陆窗口界面

程序代码:

widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMovie>//动态图类
#include <QMainWindow>
#include <QPushButton>//按钮类
#include <QMessageBox> //弹窗类
#include <QString> //字符串类
#include <QIcon>//图标类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

signals: //该权限下都是信号函数

public slots://该权限下都是槽函数
    void my_close();//实现取消按钮,关闭窗口
    void LogBtn_slot();//实现登录功能

private:
    Ui::Widget *ui;
    QMessageBox *box;//实例化一个弹窗box
};
#endif // WIDGET_H

widget.cpp:

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

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

    //去掉头部
    this->setWindowFlag(Qt::FramelessWindowHint);
    //去掉空白
    this->setAttribute(Qt::WA_TranslucentBackground);


    this->setWindowTitle("天马系统");//窗口名
    this->setWindowIcon(QIcon(":/my_pictrue/kk.jpg"));


    ui->AboveName->setPixmap(QPixmap(":/my_pictrue/zz.jpg"));//账号前图标
    ui->AboveName->setScaledContents(true);//自适应

    ui->AbovePasswd->setPixmap(QPixmap(":/my_pictrue/yy.jpg"));//密码前图标
    ui->AbovePasswd->setScaledContents(true);//自适应

    QMovie *mv = new QMovie(":/my_pictrue/bb.gif");//Log动态图标
    mv->start();//动图
    ui->Loglab->setMovie(mv);
    ui->Loglab->setScaledContents(true);//自适应


    ui->NameEdit->setPlaceholderText("QQ/手机");
    ui->PasswdEdit->setPlaceholderText("密码");
    ui->PasswdEdit->setEchoMode(QLineEdit::Password);

    //一:设置一个取消按钮
    //手动连接 基于qt4版本 连接 自定义槽函数(调用关闭函数)

    connect(ui->closeBtn,SIGNAL(clicked()),this,SLOT(my_close()));

    //二:登录按钮  基于QT5连接 自定义槽函数
    //判断输入账号是否为"admin",密码是否为"123456"
    //匹配成功,输出"登录成功",关闭界面
    //匹配失败,输出登录失败,将密码框内容清空

    //连接
    connect(ui->LogBtn,&QPushButton::clicked,this,&Widget::LogBtn_slot);

}

Widget::~Widget()
{
    delete ui;
}
//按钮Btn1对应槽函数实现
void Widget::my_close()//基于QT4  自定义槽函数实现
{
    this->close();//调用关闭函数
}

//基于QT5 自定义槽函数的实现
void Widget::LogBtn_slot()
{
    box = new QMessageBox;//申请空间
    box->setWindowTitle("提示");//设置提示框名
    box->resize(20,20);//设置大小
    box->setFixedSize(20,20);//固定大小
    box->setWindowIcon(QIcon(":/my_pictrue/kk.jpg"));

    if(QString(ui->NameEdit->text())=="admin")
    {
        if(QString(ui->PasswdEdit->text())=="123456")
        {
            box->setText("登录成功");//设置提示信息
            box->show();
            close();
        }
        else if(QString(ui->PasswdEdit->text())==0)
        {
            box->setText("请输入密码");
            box->show();
        }
        else
        {
            box->setText("密码错误");
            ui->PasswdEdit->clear();//清空密码框内容
            box->show();
        }
    }
    else
    {
        box->setText("登录失败");
        ui->PasswdEdit->clear();//清空密码框内容
        box->show();
    }
}

运行结果:

qss:

*{
	background-color: rgba(255, 255, 255, 100);
}
QFrame#frame1{
	border-image: url(:/my_pictrue/aa.png);/*图片*/
	background-color: rgba(255, 255, 255, 100);/*背景颜色*/
}
#frame2{
	border-radius:30px;/*设置倒角*/
	background-color: rgba(91, 91, 91, 100);
}
QPushButton#NameBtn{
	background:transparent;
	border-radius:10px;
	font: 9pt "宋体";/*字体大小、形状*/
	color: rgba(255, 255, 255, 120);/*字体颜色*/
}
#PasswdBtn{
	background:transparent;
	border-radius:10px;
	font: 9pt "宋体";
	color: rgba(255, 255, 255, 120);
}
#LogBtn{
	border-radius:10px;
	font: 14pt "宋体";
	background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(46, 121, 164, 255), stop:1 rgba(255, 255, 255, 255));/*渐变色*/
	color: rgba(0, 0, 0, 120);
}
#closeBtn{
	background:transparent;/*背景透明*/
	border-radius:10px;
	font: 14pt "宋体";
	color: rgb(170, 0, 0);
}
#LogBtn:pressed{/*点击按钮*/
	background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(97, 71, 153, 255), stop:1 rgba(255, 255, 255, 255));
	padding-top:5px;/*点击时字体偏移*/
	padding-left:5px;
}
QLabel#AboveName{
	background:transparent;
	border-radius:5px;
	background-color: rgba(255, 255, 255, 120);
}
#AbovePasswd{
	background:transparent;
	border-radius:5px;
	background-color: rgba(255, 255, 255, 120);
}
#Loglab{
	background:transparent;
	border-radius:5px;
}
QLineEdit{
	background:transparent;
	border:none;/*无边框*/
	border-bottom:1px solid rgb(100, 100, 100);
}

思维导图:

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

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

相关文章

嵌入式3-29

今日作业&#xff1a;用fwrite 和 fseek功能&#xff0c;将一张bmp格式的图片更改成 德国国旗#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> typedef unsigned char bgr[3]; int main(int argc, const char *argv[])…

用grafana+prometheus+cadvisor监控容器指标数据,并查询当前容器的网速网络用量

前言 整理技术&#xff0c;在这篇文章中&#xff0c;将会搭建grafanaprometheuscadvisor监控容器&#xff0c;并使用一个热门数据看板&#xff0c;再监控容器的性能指标 dashboard效果 这个是node-exporter采集到的数据&#xff0c;我没装node-exporter&#xff0c;而且这也…

3D人体姿态估计项目 | 从2D视频中通过检测人体关键点来估计3D人体姿态实现

项目应用场景 人体姿态估计是关于图像或视频中人体关节的 2D 或 3D 定位。一般来说&#xff0c;这个过程可以分为两个部分&#xff1a;(1) 2D 视频中的 2D 关键点检测&#xff1b;(2) 根据 2D 关键点进行 3D 位姿估计。这个项目使用 Detectron2 从任意的 2D 视频中检测 2D 关节…

【滑动窗口】Leetcode 将 x 减到 0 的最小操作数

题目解析 1658. 将 x 减到 0 的最小操作数 算法讲解 这道题按照题目要求的话会变得很难&#xff0c;因为不仅需要考虑数字减到0&#xff0c;还需要考虑最小的操作数。正难则反&#xff0c;按照这个思路&#xff0c;我们来解析题目 这道题本质上无非就是在左边寻找一段区间&a…

【每日算法】理论: 扩散模型+深度学习基础 刷题:力扣哈希表回顾

上期文章 【每日算法】理论&#xff1a; DALLE 系列 刷题&#xff1a;力扣链表回顾 文章目录 上期文章一、上期问题二、本期问题1、交叉熵损失函数2、SAM模型的mask encoder&#xff08;掩码解码器&#xff09;3、VQVAE的优化问题4、controlnet模型中的zero convolution模块5、…

浪潮信息AIStation与潞晨科技Colossal-AI 完成兼容性认证!

为进一步提升大模型开发效率&#xff0c;近年来&#xff0c;浪潮信息持续加强行业合作&#xff0c;携手业内头部&#xff0c;全面进攻大模型领域。日前&#xff0c;浪潮信息AIStation智能业务创新生产平台与潞晨科技Colossal-AI大模型开发工具完成兼容性互认证。后续&#xff0…

边缘计算盒子 | 什么是边缘计算盒子?选型要看哪些参数?

边缘计算(Edge Computing)是一种分布式计算范式&#xff0c;它将计算资源和数据存储位于离网络核心节点较近的地方&#xff0c;以降低延迟、提高传输速度和数据安全性。通常可以把边缘计算盒子(Edge Computing Box)理解成一种集成了边缘计算功能的硬件设备&#xff0c;通常部署…

SD 修复 Midjourney 有瑕疵照片

Midjourney V6 生成的照片在质感上有了一个巨大的提升。下面4张图就是 Midjourney V6 生成的。 如果仔细观察人物和老虎的面部&#xff0c;细节真的很丰富。 但仔细观察上面四张图的手部细节&#xff0c;就会发现至少有两只手是有问题的。这也是目前所有 AI 绘图工具面临的问题…

第十二章 微服务核心(二)

一、Spring Cloud 1. 服务注册中心 常见的服务注册中心组件如下 - Eureka - Consul - Zookeeper - Etcd - Nacos 2. Eureka SpringCloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。 什么是服务治理&#xff1a;在传统的 RPC 远程调用框架中&#xff0c;管…

SQLite中的隔离(八)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite版本3中的文件锁定和并发(七&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 数据库的“isolation”属性确定何时对 一个操作的数据库对其他并发操作可见。 数据库连接之间的隔离 如果使用两个不…

SpringBoot整合参数校验

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉🍎个人主页:Leo的博客💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot整合参数校验 📚个人知识库: Leo知识库,欢迎大家访问 目录 1.前言…

关于github提交失败的问题

问题描述 Username for https://github.com: LAL-Better Password for https://LAL-Bettergithub.com: remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/get-started/getting-started-with-git/abo…

QT资源添加调用

添加资源文件&#xff0c;新建资源文件夹&#xff0c;命名resource&#xff0c;然后点下一步&#xff0c;点完成 资源&#xff0c;右键add Prefix 添加现有文件 展示的label图片切换 QLabel *led_show; #include "mainwindow.h" #include<QLabel> #include&l…

Python应用JSON Web Tokens库之pyjwt使用详解

概要 JSON Web Tokens(JWT)是一种用于安全传输信息的开放标准(RFC 7519),它可以在网络应用之间传递声明。PyJWT是Python中用于创建、解析和验证JWT的库,它提供了丰富的功能和灵活性,能够轻松地在Python应用程序中实现JWT的各种功能。本文将深入探讨PyJWT库的各个方面,…

再见 mysql_upgrade

在数据库管理的世界里&#xff0c;随着技术的不断进步和业务的不断发展&#xff0c;数据库的版本升级成为了一个不可避免的过程。 MySQL 作为业界领先的开源关系型数据库管理系统&#xff0c;其版本迭代与功能优化同样不容忽视。 而在这个过程中&#xff0c;升级工具就显得尤为…

若依微服务nacos配置在哪里?

今天拿ruoyi-cloud项目拉下来看了下&#xff0c;发现nacos配置文件比较难找&#xff0c;这里说一下在哪里。 在项目sql脚本ry_config_20231204.sql里面&#xff0c;这个脚本执行会创建一个数据库叫ry-config。 安装好nacos以后&#xff0c;在nacos的配置文件application.proper…

ESP32-S3 集成了2.4GHz、Wi-Fi和BLE5.0的MCU芯片

智能家居无处不在&#xff0c;生活中一个不起眼的插座都有大讲究。那与全屋智能互相连通的WiFi智能插座内部到底是什么样呢&#xff1f; 一般的WiFi智能插座&#xff0c;由一个物理按键模块&#xff0c;负责物理上直接控制插座开关、重新配网等功能&#xff1b;WiFi模块&#x…

计数器的原理和应用

一、计数器的原理和应用 要求&#xff1a;每计数三次&#xff0c;数码管值加一 #include<reg51.h> unsigned char s[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsigned char num0; void initcounter() {TMOD0x06;//0000 0110TH0256-3;TL0256-3;ET01;EA1;T…

OSX-02-Mac OS应用开发系列课程大纲和章节内容设计

本节笔者会详细介绍下本系统专题的大纲&#xff0c;以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图&#xff0c;因为比较重要&#xff0c;在这里再冗余介绍一下。开发Apple公司相关产品的软件时&#xff0c;主要有两个框架…

327京东一面

1.项目相关 2.手撕SQL 两道 3.JMeter性能测试 首先&#xff0c;进行基准测试&#xff1a; 单用户测试&#xff08;单用户循环多次得到的数据&#xff09;&#xff1b;为多用户并发执行提供参考 其次&#xff0c;进行负载测试&#xff1a; 通过逐步增加系统负载&#xff0…