12月8日作业

news2024/11/27 22:31:29

题目:

使用手动连接,将登录框中的取消按钮使用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文件

运行结果

思维导图

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

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

相关文章

【超详细教程】FL Studio 21中文破解版,让你的音乐制作更出彩啦!

嗨小仙女们&#xff01;今天小助理要跟大家分享一个超赞的消息&#xff01;你们知道吗&#xff0c;FL Studio 21中文破解版终于来啦&#xff01; FL Studio 21是一款超级火爆的音乐制作软件&#xff0c;不仅功能强大&#xff0c;而且操作简单&#xff0c;适合各种水平的音乐制…

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

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

【数据结构】插入排序,希尔排序,选择排序,堆排序,冒泡排序

1.插入排序 思路&#xff1a;插入排序将一个数插入一个有序的数组里面&#xff0c;将这个数和数组元素挨着比较&#xff0c;直到他插入到合适的位置。 动画演示&#xff1a; 步骤&#xff1a;1.定义一个变量tmp保存要插入的数据 2.在循环中用tmp和有序数组中的元素比较&#…

SpringBoot Seata 死锁问题排查

现象描述&#xff1a;Spring Boot项目&#xff0c;启动的时候卡住了&#xff0c;一直卡在那里不动&#xff0c;没有报错&#xff0c;也没有日志输出 但是&#xff0c;奇怪的是&#xff0c;本地可以正常启动 好吧&#xff0c;姑且先不深究为什么本地可以启动而部署到服务器上就无…

软件压力测试的重要性与用途

在当今数字化的时代&#xff0c;软件已经成为几乎所有行业不可或缺的一部分。随着软件应用规模的增加和用户数量的上升&#xff0c;软件的性能变得尤为关键。为了确保软件在面对高并发和大负载时仍然能够保持稳定性和可靠性&#xff0c;软件压力测试变得至关重要。下面是软件压…

python 使用 AppiumService 类启动appium server

一、前置说明 在Appium的1.6.0版本中引入了AppiumService类&#xff0c;可以很方便的通过该类来管理Appium服务器的启动和停止。 二、操作步骤 import osfrom appium.webdriver.appium_service import AppiumService as OriginalServerfrom libs import pathclass AppiumSer…

Python入门第1篇

前言 很久之前就知道有python这个东西&#xff0c;当时也想的学学&#xff0c;不过一直没做行动派。 那时候就听说用python进行Excel数据分析处理、爬虫等很是厉害&#xff0c;但是始终没有与python的关系更进一步。 Python简介 用我自己的话说&#xff0c;python也是一门面…

【面试经典150 | 二叉树】对称二叉树

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;递归方法二&#xff1a;迭代 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的…

c 语言 堆的解析(自我理解)!!!堆排序,建堆

1.堆是什么&#xff1f; 首先先看一个图片 小顶堆的意思就是顶 的元素最小&#xff0c;两个子节点的元素要大于父节点。大顶堆同理。 小顶堆就像是一个金字塔。第一层很小&#xff0c;然后后面是依次增大&#xff0c;就像社会人才金字塔图一样。 大顶堆就可以想做&#xff0…

cesium学习记录

有段时间自学了cesium&#xff0c;这里记录一下自学过程&#xff0c;希望在所需之时查阅~~ 1、cesium源码获取与Index页面介绍 官网网址 www.cesiumjs.org 源代码下载&#xff1a;Platform-Dowmloads 在index.html右击open with Live server开启本地服务 点击Documentation…

RESTful API,以及如何使用它构建 web 应用程序。

RESTful API是一种基于REST&#xff08;Representational State Transfer&#xff09;架构风格的API&#xff08;Application Programming Interface&#xff09;&#xff0c;它采用HTTP协议中的GET、POST、PUT、DELETE等方法&#xff0c;对资源进行操作。RESTful API的核心思想…

Python (四)读写word

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

HarmonyOS Developer——鸿蒙【构建第一个JS应用(FA模型)】

创建JS工程 JS工程目录结构 构建第一个页面 构建第二个页面 实现页面间的跳转 使用真机运行应用 说明 为确保运行效果&#xff0c;本文以使用DevEco Studio 3.1 Release版本为例&#xff0c;点击此处获取下载链接。 创建JS工程 若首次打开DevEco Studio&#xff0c;请点击…

【漏洞复现】万户协同办公平台ezoffice wpsservlet接口存在任意文件上传漏洞 附POC

漏洞描述 万户ezOFFICE集团版协同平台以工作流程、知识管理、沟通交流和辅助办公四大核心应用 万户ezOFFICE协同管理平台是一个综合信息基础应用平台。 万户协同办公平台ezoffice wpsservlet接口存在任意文件上传漏洞。 免责声明 技术文章仅供参考,任何个人和组织使用网络应…

C语言入门课程之课后习题之折半查找法

目录 1解题思路&#xff1a; 2代码所示&#xff1a; 3运行代码&#xff1a; 4习题不难&#xff0c;多刷题&#xff0c;练思路&#xff0c;最重要的不是学会了一道题&#xff0c;而是掌握其编程思想&#xff1b; 1解题思路&#xff1a; 折半查找法&#xff08;half-interval…

机器人刚性碰撞任务的阻抗控制性能

问题描述 对于机器人刚性碰撞任务&#xff0c;阻抗控制可以有效地提高机器人的适应性和稳定性。 在刚性碰撞任务中&#xff0c;机器人在接触外部物体时需要快速适应并调整自身的运动轨迹和速度&#xff0c;以实现精确的操控和稳定的交互。阻抗控制可以通过调整机器人的阻抗参…

【数电笔记】54-或非门构成的基本RS触发器

目录 1. 电路组成 2. 逻辑功能 3. 特性表 4. 特性方程 5. 例题 6. 两种基本RS触发器的形式比较 笔记配套视频来源&#xff1a;B站&#xff1b;本系列笔记并未记录所有章节&#xff0c;只对个人认为重要章节做了笔记&#xff1b;标题前面的数字标号就是对应的视频章节&…

【【水 MicroBlaze 最后的介绍和使用】】

水 MicroBlaze 最后的介绍和使用 我对MicroBlaze 已经有了一个普遍的理解 了 现在我将看的两个 一个是 AXI4接口的 DDR读写实验 还有一个是 AXI DMA 环路实验 虽然是 水文 但是 也许能从中 得到一些收获 第一个是 AXI DDR 读写实验 Xilinx 从 Spartan-6 和 Virtex-6 系列开始…

元宇宙真的凉凉了吗?

AI和元宇宙作为引领技术和产业发展的两个并行元素正在加速融合&#xff0c;激发出行业强大的创新力。 这里重点讲一下元宇宙。它是建立在区块链之上的虚拟世界&#xff0c;去中心化平台让用户拥有所有权和自治权。通过沉浸式的体验&#xff0c;让虚拟更接近现实。 随着我国元宇…

学习Pinia

Pinia 1.介绍Pinia2.起步 安装3.看完文章学会pinia 1.介绍Pinia Pinia.js 有如下特点&#xff1a; 完整的 ts 的支持&#xff1b; 足够轻量&#xff0c;压缩后的体积只有1kb左右; 去除 mutations&#xff0c;只有 state&#xff0c;getters&#xff0c;actions&#xff1b; a…