12月8日作业

题目:

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

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

源文件

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //=============窗口设置==============
    this->setWindowTitle("pp"); //窗口名为pp
    this->setWindowIcon(QIcon(":/pictrue/wodepeizhenshi.png"));  //选择该路径下的图片为图标

    this->setWindowFlag(Qt::FramelessWindowHint);  //设置纯净窗口

    this->resize(540,410);  //重新设置窗口尺寸

    this->setStyleSheet("background-color:rgb(255,255,255)");


    //=============标签设置==============
//    QLabel *lab1 = new QLabel(this);  //创建lab1标签,依赖窗口显示
//    lab1->resize(540,160);  //设置lab1标签大小
//    QMovie *mv1 = new QMovie(":/pictrue/qq2.gif");  //接收该目录下的动图
//    lab1->setMovie(mv1);  //将动图放入label中
//    mv1->start();  //让动图动
//    lab1->setScaledContents(true);  //自适应大小
    QMovie *mv1 = new QMovie(":/pictrue/qq2.gif");  //接收该目录下的动图
    ui->label_logo->setMovie(mv1);  //将动图放入ui标签中
    mv1->start();  //让动图动
    ui->label_logo->setScaledContents(true);  //自适应大小

    QLabel *lab2 = new QLabel(this);  //创建lab2标签,依赖窗口显示
    lab2->move(25,25);  //将lab2标签移动到合适位置
    lab2->resize(35,35);  //设置lab2标签大小
    lab2->setPixmap(QPixmap(":/pictrue/kunkun.webp"));  //将该路径图片放入lab2标签
    lab2->setScaledContents(true);  //自适应大小

//    QLabel *lab3 = new QLabel(this);  //创建lab3标签,依赖窗口显示
//    lab3->move(130,210);  //移动lab3标签
//    lab3->resize(30,30);  //设置lab3尺寸
//    lab3->setPixmap(QPixmap(":/pictrue/userName.jpg"));  //将该路径图片放入lab3标签
//    lab3->setScaledContents(true);  //自适应大小

    ui->label_id->setPixmap(QPixmap(":/pictrue/userName.jpg"));  //将该路径图片放入label_id标签
    ui->label_id->setScaledContents(true);  //自适应大小

//    QLabel *lab4 = new QLabel(this);  //创建lab4标签,依赖窗口显示
//    lab4->move(130,270);  //移动lab4标签
//    lab4->resize(30,30);  //设置lab4尺寸
//    lab4->setPixmap(QPixmap(":/pictrue/passwd.jpg"));  //将该路径图片放入lab4标签
//    lab4->setScaledContents(true);  //自适应大小

    ui->label_passward->setPixmap(QPixmap(":/pictrue/passwd.jpg"));  //将该路径图片放入label_id标签
    ui->label_passward->setScaledContents(true);  //自适应大小

    QLabel *lab5 = new QLabel(this);  //创建lab5标签,依赖窗口显示
    lab5->move(225,115);  //移动lab5标签
    lab5->resize(70,70);  //设置lab5尺寸
    lab5->setStyleSheet("background-color:rgb(0,0,0);border-radius:35px");

    //=================行编辑器设置======================
//    QLineEdit *edit1 = new QLineEdit(this);  //创建edit1行编辑器,依赖窗口
//    edit1->move(170,210);  //移动行编辑器
//    edit1->resize(285,40);  //设置尺寸
//    edit1->setPlaceholderText("PP号码/手机/邮箱");  //隐式显式

    ui->edit_id->setPlaceholderText("PP号码/手机/邮箱");  //隐式显式

//    QLineEdit *edit2 = new QLineEdit(this);  //创建edit2行编辑器,依赖窗口
//    edit2->move(170,270);  //移动行编辑器
//    edit2->resize(285,40);  //设置尺寸
//    edit2->setPlaceholderText("密码");  //隐式显式
//    edit2->setEchoMode(QLineEdit::Password);  //密码模式

    ui->edit_passward->setPlaceholderText("密码");  //隐式显式
    ui->edit_passward->setEchoMode(QLineEdit::Password);  //密码模式

    //==================按钮设置========================
//    QPushButton *btn1 = new QPushButton(this);  //创建按钮,依赖窗口
//    btn1->move(130,340);  //移动位置
//    btn1->resize(330,45);  //设置尺寸
//    btn1->setStyleSheet("background-color:rgb(31,200,253);border-radius:8px");  //设置颜色和弧角
//    btn1->setText("登录");  //设置文本

    connect(ui->btn_login,&QPushButton::clicked,this,&Widget::myslots);  //qt5版本连接信号和槽

    connect(ui->btn_cancle,SIGNAL(clicked()),this,SLOT(on_pushButton_2_clicked()));  //qt4版本连接信号和槽
}

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


void Widget::on_pushButton_2_clicked()  //取消按钮槽函数
{
    this->close();
}

void Widget::myslots()  //登录按钮槽函数
{
    if(ui->edit_id->text() == "admin" & ui->edit_passward->text() == "123456")
    {
        qDebug() << "登录成功";
    }
    else
    {
        ui->edit_passward->clear();
        qDebug() << "登录失败";
    }
}

头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QIcon>
#include <QLabel>
#include <QMovie>
#include <QLineEdit>
#include <QPushButton>
#include <QDebug>


QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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

private slots:
    void on_pushButton_2_clicked();

    void myslots();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

ui文件

运行结果

思维导图

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

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

相关文章

TCP流套接字编程

文章目录 TCP流套接字编程ServerSocket APISocket API示例&#xff1a;回显服务器服务器端客户端 利用线程池实现并发编程 TCP流套接字编程 TCP和UDP差距是很大的&#xff0c;在数据传输方面&#xff0c;UDP是面向数据报的&#xff0c;而TCP是面向字节流的的&#xff0c;下面列…

Windows磁盘管理中硬盘无法初始化怎么办?

硬盘未出现在“此电脑”选项下的情况并不少见&#xff0c;当您打开磁盘管理&#xff0c;它要么显示为磁盘未知&#xff0c;要么显示为未分配的空间&#xff0c;或者只是不显示磁盘容量。为了访问您的硬盘并充分利用它&#xff0c;您需要对其进行初始化。不幸的是&#xff0c;您…

基于SSM的社区管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

Java多线程并发(二)

四种线程池 Java 里面线程池的顶级接口是 Executor&#xff0c;但是严格意义上讲 Executor 并不是一个线程池&#xff0c;而只是一个执行线程的工具。真正的线程池接口是 ExecutorService。 newCachedThreadPool 创建一个可根据需要创建新线程的线程池&#xff0c;但是在以前…

Endnote使用教程

原由 最近要进行开题报告&#xff0c;要求不低于60文献的阅读与引用&#xff0c;单独插入引入我觉得是非常繁琐的事情&#xff0c;所以就借助Endnote这个工具&#xff0c;减少我们的工作量。 使用方法 第一步&#xff1a;先新建一个数据库&#xff0c;这样子可以在这个数据库…

动态获取绝对路径

在Python中&#xff0c;可以使用 os模块 来获取当前工作目录的路径&#xff0c;并使用 os.path.join()函数 将相对路径与当前工作目录结合起来&#xff0c;形成一个动态获取的绝对路径 以下是一个简单的例子&#xff1a; import os# 获取当前工作目录的路径 current_director…

ArkTS快速入门

一、概述 ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风格的基础上&#xff0c;对TS的动态类型特性施加更严格的约束&#xff0c;引入静态类型。同时&#xff0c;提供了声明式UI、状态管理等相应的能力&#xff0c;让开发者可以…

Docker Container(容器)——6

目录&#xff1a; 什么是容器&#xff1f;容器生活案例&#xff1f;为什么需要容器&#xff1f;容器的生命周期 容器 OOM容器异常退出容器暂停容器命令清单容器命令详解 docker createdocker rundocker psdocker logsdocker attachdocker execdocker startdocker stopdocker r…

Linux设置root初始密码

目录 一、Linux系统中普通用户和特权用户&#xff08;root&#xff09; 二、Linux系统中设置root初始密码 一、Linux系统中普通用户和特权用户&#xff08;root&#xff09; windows 系统中有普通用户和特权用户&#xff0c;特权用户是 administer&#xff0c;普通用户可以…

重新认识Word——多级列表和项目符号

重新认识Word——多级列表和项目符号 多级列表没有运用标题样式但标题格式统一 正式公本文书项目符号和自动编号项目符号自动编号软回车重新起头开始编号解决编号与文本距离过大问题 之前我们重新认识了Word里面的样式&#xff0c;现在的情况就是&#xff0c;我的一些文字已经运…

上海宝山区12月8日发生一起火灾 火势已扑灭 揭秘AI如何“救援”

在这个冬日的早晨&#xff0c;上海宝山区的居民经历了一场惊心动魄的火灾。幸运的是&#xff0c;火势很快就被扑灭了。但这起事件不禁让我们思考&#xff1a;如何更有效地预防和应对这样的紧急情况&#xff1f; 这时候&#xff0c;就不得不提到北京富维图像公司的一项创新技术—…

了解linux网络时间服务器

本章主要介绍网络时间服务器。 使用chrony配置时间服务器 配置chrony客户端向服务器同步时间 20.1 时间同步的必要性 些服务对时间要求非常严格&#xff0c;例如&#xff0c;图20-1所示的由三台服务器搭建的ceph集群。 这三台服务器的时间必须保持一致&#xff0c;如果不一致…

Python Django-allauth: 构建全面的用户身份验证系统

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Django-allauth是一个功能强大的Django插件&#xff0c;旨在简化和定制Web应用程序中的用户身份验证和管理。本文将深入介绍Django-allauth的核心功能、基本用法以及实际应用场景&#xff0c;通过丰富的示例代码…

一个newman命令行让某大厂瘫痪半天,速看!

newman简介 newman是为Postman而生&#xff0c;专门用来运行Postman编写好的脚本&#xff1b; 使用newman&#xff0c;你可以很方便的用命令行来执行postman collections。 newman的安装 1.先下载Node.js&#xff1b;https://nodejs.org/en/ 2.安装NodeJs(很容易安装&#x…

Java IO流(二)(字节流FileOutputStream)

IO流体系 InputStream、OutputStream及Reader、Writer都是抽象类。 字节流 FileOutputStream 操作本地文件的字节输出流&#xff0c;可以把程序中的数据写到本地文件中。 FileOutputStream字节输出流的细节 创建字节输出流对象 细节1:参数是字符串表示的路径或者是File对象…

zotero关闭翻译自动创建标签

zotero中文社区&#xff1a;https://plugins.zotero-chinese.com/#/

游戏架构之继承对象模型和组件对象模型

1.概述&#xff1a; 在所有游戏性架构相关的内容中&#xff0c;运行时对象模型可能是最复杂的系统&#xff0c;并且不同的游戏引擎呈现出的差异极大。例如Unity3D提供的组件模型&#xff0c;虚幻引擎提供的面向对象继承模型&#xff0c;其他一些游戏则使用一种不同于两者的基于…

【广州华锐互动VRAR】VR戒毒科普宣传系统有效提高戒毒成功率

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为人们的生活带来了前所未有的便利。在教育科普领域&#xff0c;VR技术的应用也日益广泛&#xff0c;本文将详细介绍广州华锐互动开发的VR戒毒科普宣传系统&#xff0…

12.8作业

1. 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…

Termux+Hexo结合内网穿透轻松实现安卓手机搭建博客网站发布公网访问

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…