QT_day3:信号和槽的连接方式

news2025/2/3 6:10:50

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);
}

思维导图:

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

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

相关文章

基于.NET Core开发的轻量级分布式配置中心

前言 今天给大家推荐一个基于.NET Core开发的轻量级分布式配置中心&#xff1a;AgileConfig。 AgileConfig官方介绍 AgileConfig秉承轻量化的特点&#xff0c;部署简单、配置简单、使用简单、学习简单&#xff0c;它只提取了必要的一些功能&#xff0c;并没有像Apollo那样复…

小米汽车引入革命性卫星通信技术:专利揭示直连卫星能力

小米汽车在近期的SU7发布会上&#xff0c;虽已展示了其运动轿跑车型的各项卓越性能&#xff0c;售价起于21.59万元&#xff0c;但其技术创新的深度远不止于此。一项最新公布的专利显示&#xff0c;小米汽车科技有限公司正在积极探索和开发车载卫星通信技术&#xff0c;该技术的…

【web安全】Dr4g0n-b4ll 靶场笔记

搜索目标&#xff0c;使用&#xff1a;nmap -sn 192.168.111.0/24 扫描当前ip段的存货 -sn是忽略端口&#xff0c;只扫描存活&#xff0c;发现IP&#xff1a;192.168.111.133 先不要扫描&#xff0c;直接访问&#xff1a;192.168.111.133&#xff0c;打开是普通的网页 观察内容…

vivado 手动布线

手动路由 手动路由允许您为网络选择特定的路由资源。这给了你对信号将要采用的路由路径的完全控制。手动路由不调用route_design。路线在路线数据库中直接更新。当您想精确控制网络的延迟时&#xff0c;可能需要使用手动路由。对于例如&#xff0c;假设有一个源同步接口&#…

ATTCK学习笔记

ATT&CK 前言知识 威胁情报&#xff1a;一般为网络流量中或者操作系统上观察到的能高度表明计算机被入侵的痕迹&#xff0c;例如某病毒的Hash值、服务器的IP地址等等。简单来说&#xff0c;威胁情报就像是当计算机被入侵时所表现出来的某种特征&#xff0c;我们将这些威胁…

爬虫(Web Crawler)逆向技术探索

实战案例分析 为了更好地理解爬虫逆向的实际应用&#xff0c;我们以一个具体的案例进行分析。 案例背景 假设我们需要从某电商网站上获取商品价格信息&#xff0c;但该网站采取了反爬虫措施&#xff0c;包括动态Token和用户行为分析等。 分析与挑战 动态Token&#xff1a;…

Linux部分命令

目录 1.文件介绍 2.ls命令 3.目录命令 4.相对路径以及绝对路径 5.命令创建目录&#xff08;文件夹&#xff09; 6.which命令 7.find命令 8.grep命令 9.wc命令 10.echo、tail、重定向符 1.文件介绍 和window不同&#xff0c;Linux没有盘路径&#xff0c;所有的文件都存…

python读取excel,转换成json格式,for国际化前端菜单

# -*- coding: utf-8 -*-import pandas as pd import json# 读取Excel文件中的数据 excel_file rD:\解析excel\中英.xlsx df pd.read_excel(excel_file)# 生成中文JSON和英文JSON cn_data {} en_data {} pu_data {} special_data_cn {} special_data_en {} special_data…

Stata 15 for Mac:数据统计分析新标杆,让研究更高效!

Stata 是一种统计分析软件&#xff0c;适用于数据管理、数据分析和绘图。Stata 15 for Mac 具有以下功能&#xff1a; 数据管理&#xff1a;Stata 提供强大的数据管理功能&#xff0c;用户可以轻松导入、清洗、整理和管理数据集。 统计分析&#xff1a;Stata 提供了广泛的统计…

每天五分钟深度学习:使用神经网络完成人脸的特征点检测

本文重点 我们上一节课程中学习了如何利用神经网络对图片中的对象进行定位,也就是通过输出四个参数值bx、by、bℎ和bw给出图片中对象的边界框。 本节课程我们学习特征点的检测,神经网络可以通过输出图片中对象的特征点的(x,y)坐标来实现对目标特征的识别,我们看几个例子。…

Android裁剪图片为波浪形或者曲线形的ImageView

如果需要做一个自定义的波浪效果的进度条&#xff0c;裁剪图片&#xff0c;对ImageView的图片进行裁剪&#xff0c;比如下面2张图&#xff0c;如何实现&#xff1f; 先看下面的效果&#xff0c;看到其实只需要对第一张高亮的图片进行处理即可&#xff0c;灰色状态的作为背景图。…

前端常用的css以及css3技巧

前端常用的css以及css3 首先给大家推荐一个款很不错的微信小程序&#xff0c; 可以逗逗身边朋友&#xff0c;或者你有时候想脱身的时候&#xff0c;想找个理由接口 那么这个绝对是神器 文章目录 黑白图像使用:not()在菜单上应用/取消应用边框对图标使用 SVG继承 box-sizingCS…

科普:从神经网络到 Hugging Face——神经网络和深度学习简史

活中没有什么可怕的东西&#xff0c;只有需要理解的东西。—— 居里夫人 深度信念网络 2006年&#xff0c;加拿大多伦多大学教授杰弗里辛顿在研究如何训练多层神经网络&#xff0c;他已经在神经网络领域默默耕耘了三十多年&#xff0c;尽管在这个领域他算得上是泰斗级的人物&…

windows 远程连接(mstsc)无法复制粘贴文件

目录 问题 1. 打开远程连接(mstsc) 方式一&#xff1a; 方式二&#xff1a; 2. 打开【显示选项】 3. 选择【本地资源】 > 【详细信息】 4. 选择需要操作的本机磁盘 5. 重新打开远程即可 问题 使用win自带的远程桌面连接&#xff0c;无法复制粘贴文件&#xff0c;解…

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

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

TCP/IP 网络模型有哪几层?(计算机网络)

应用层 为用户提供应用功能 传输层 负责为应用层提供网络支持 使用TCP和UDP 当传输层的数据包大小超过 MSS&#xff08;TCP 最大报文段长度&#xff09; &#xff0c;就要将数据包分块&#xff0c;这样即使中途有一个分块丢失或损坏了&#xff0c;只需要重新发送这一个分块…

XXE漏洞初解

XXE漏洞初解 前置知识&#xff1a;XML和DTD 1.XML详解 XML 指可扩展标记语言&#xff08;eXtensible Markup Language&#xff09;&#xff0c;这种标记语言是从标准通用标记语言&#xff08;SGML&#xff09;中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语…

位运算算法(1)

目录 一、算法简述 191. 位1的个数 一、题目描述 二、思路解析 三、代码 338.比特位计数 一、题目描述 二、思路解析 三、代码 461.汉明距离 一、题目描述 二、思路解析 三、代码 声明&#xff1a;本博客涉及到的三道题均为一种做法的总结&#xff0c;建议先了解做…

实战 | YOLOv8自定义数据集训练实现手势识别 (标注+训练+预测 保姆级教程)

导 读 本文将手把手教你用YoloV8训练自己的数据集并实现手势识别。 安装环境 【1】安装torch, torchvision对应版本,这里先下载好,直接安装 pip install torch-1.13.1+cu116-cp38-cp38-win_amd64.whlpip install torchvision-0.14.1+cu116-cp38-cp38-win_amd64.whl 安装好…

# Apache SeaTunnel 究竟是什么?

作者 | Shawn Gordon 翻译 | Debra Chen 原文链接 | What the Heck is Apache SeaTunnel? 我在2023年初开始注意到Apache SeaTunnel的相关讨论&#xff0c;一直低调地关注着。该项目始于2017年&#xff0c;最初名为Waterdrop&#xff0c;在Apache DolphinScheduler的创建者…