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_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic: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.hqwc.cn/news/579123.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot:自定义线程池配置类

文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时&#xff0c;基于Springboot项目的定时任务&#xff0c;我们可以指定一个自定义的线程配…

基于SpringBoot民族婚纱预定系统

采用技术 基于SpringBoot民族婚纱预定系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 系统功能 摄影师列表 公告信息管理 公告类型管理 项目背景…

Redis慢日志

SLOWLOG 是用来读取和重置 Redis 慢查询日志的命令&#xff0c;Redis 2.2.12 版本开始支持 1.Redis 慢查询日志概述 客户端从发送命令到获取返回结果经过了以下几个步骤&#xff1a; 1. 客户端发送命令 2. 该命令进入 Redis 队列排队等待执行 3. Redis 开始执行命令 - Red…

ToolPlatform:烧录时TFTP报错

截图 文字 ARP Retry count exceeded; starting again 网络下载TFTP超时&#xff0c;可能的原因如下&#xff1a; 1.首先检查服务器IP是否正确&#xff0c;若不正确点击重新加载&#xff0c;加载最新的PC端IP地址&#xff1b; 2.检查子网掩码与网关是否配置正确; 3.检查板端IP…

探索Python中的强化学习:Q-learning

强化学习是一种机器学习方法&#xff0c;用于训练智能体&#xff08;agent&#xff09;在与环境的交互中学习如何做出最优决策。Q-learning是强化学习中的一种基于价值函数的方法&#xff0c;用于学习最优策略。本文将详细介绍Q-learning的原理、实现方式以及如何在Python中应用…

K8S安装和部署(kubeadmin安装1主2从)

这里用kubeadmin方式进行安装部署 1. 准备三台服务器 服务器地址 节点名称 192.168.190.200 master 主 192.168.190.201 node1 从 192.168.190.202 node2 从 2. 主机初始化&#xff08;所有主机&#xff09; 2.1根据规划设置主机名 #切换到192.168.190.200 hostnamectl…

QA:绑定ROS机器人控制板PCB设备ID

前言 一般情况下&#xff0c;主控板(树莓派、Jetson等)会同时和多个串口进行通信&#xff0c;这时&#xff0c;我们希望&#xff0c;用一个固定名称代表特定串口&#xff0c;比如用serial_motor_drive绑定电机驱动控制板&#xff0c;使ROS2的配置、编程和运行更加方便。 下面是…

会声会影剪刀为什么灰色 会声会影分割素材的方法 会声会影视频制作教程 会声会影2023旗舰版下载 会声会影快捷键

会声会影是一款操作简单&#xff0c;功能齐全&#xff0c;适合新手使用的视频剪辑软件。在使用会声会影剪辑的过程中&#xff0c;我们一般需要使用【剪刀工具】&#xff0c;但有时会声会影剪刀是灰色无法使用的状态&#xff0c;这个时候该怎么办呢&#xff1f;本文将为大家介绍…

个人优势能力测评,寻找你的天赋

个人优势能力测评&#xff0c;用来发现自己的天赋&#xff0c;也被称之为多元智力测评&#xff0c;该理论认为人的智力不仅仅是逻辑思维能力&#xff0c;每个人的天赋不同&#xff0c;具有多样性&#xff0c;目前的智力测试基本上都以逻辑思维&#xff0c;推理能力为主&#xf…

几种确定Windows电脑有多旧的方法,总有 一种适合你

前言 如果你正在考虑升级你的计算机&#xff0c;或者想知道你的计算机是否仍在保修期内&#xff0c;你需要知道你的电脑有多旧。谢天谢地&#xff0c;有几种方法可以做到这一点&#xff0c;但没有一种方法过于复杂。 如何判断你的计算机有多旧 除非另有说明&#xff0c;否则…

vitess执行计划缓存 测试

打开执行计划器缓存&#xff1a; sysbench /usr/local/share/sysbench/oltp_write_only.lua --mysql-host127.0.0.1 --mysql-port15306 --mysql-userroot --mysql-password --mysql-dbcustomer --report-interval10 100s sysbench /usr/local/share/sysbench/oltp_read_only.l…