QT【day2】

news2024/11/27 2:26:07

完善登录框:

//main头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QDebug>  //信息调试类,用于打印输出
#include<QIcon>   //图标头文件
#include<QPushButton> //按钮类头文件
#include<QLineEdit>  //行编辑器头文件
#include<QLabel>  //标签类头文件
#include <QMovie>
#include <QMessageBox>

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

    QPushButton *btn2 = new QPushButton("取消", this);
    QPushButton *btn1 = new QPushButton("登录", this);
    QLineEdit *edit2 = new QLineEdit("密码",this);
    QLineEdit *edit1 = new QLineEdit("账户",this);
    QLabel *lab3 = new QLabel("密码",this);
    QLabel *lab2 = new QLabel("账号",this);
    QLabel *lab1 = new QLabel(this);

signals:
    //跳转信号
    void jump();

public slots:
    //自定义槽函数
    void my_slot();
    //自定义按钮一的参函数申明
    void btn1_slot();


};
#endif // MAINWINDOW_H

//界面二头文件
#ifndef SECOND_H
#define SECOND_H

#include <QWidget>
#include<QIcon>   //图标头文件

namespace Ui {
class Second;
}

class Second : public QWidget
{
    Q_OBJECT

public:
    explicit Second(QWidget *parent = nullptr);
    ~Second();

public slots:
    void jump_slot();

private:
    Ui::Second *ui;
};

#endif // SECOND_H

//main.cpp
#include "mainwindow.h"
#include "second.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    Second s;

    //连接两个界面的信号与槽
    QObject::connect(&w, &MainWindow::jump, &s, &Second::jump_slot);



    return a.exec();
}

//mainwindoe.cpp
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //窗口设置
    this->setFixedSize(600,600);   //设置大小
    this->setWindowTitle("MUMU");  //文本内容
    this->setWindowOpacity(0.9);  //透明度
    this->setWindowIcon(QIcon(":/ikun/jaioyou.png"));  //图标

    //QLabel
    lab1->resize(600,230);  //设置大小
    lab1->setPixmap(QPixmap(":/ikun/tou.png")); //插入图片
    lab1->setScaledContents(true); //设置文本自适应

    //账户图标
    lab2->resize(60,40);    //设置大小
    lab2->move(70,280);     //移动位置
    lab2->setAlignment(Qt::AlignCenter);   //居中对齐
    lab2->setPixmap(QPixmap(":/ikun/jiaoyou2.png"));  //插入图片
    lab2->setScaledContents(true); //设置文本自适应

    //密码图标
    lab3->resize(60,40);  //设置大小
    lab3->move(70,340);   //移动位置
    lab3->setAlignment(Qt::AlignCenter);    //居中对齐
    lab3->setPixmap(QPixmap(":/ikun/pas.png"));     //插入图片
    lab3->setScaledContents(true); //设置文本自适应

    //QLineEdit
    //账户行编辑器
    edit1->resize(230,40);      //设置大小
    edit1->move(150,280);       //移动位置

    //密码行编辑器
    edit2->resize(230,40);      //设置大小
    edit2->move(150,340);       //移动位置
    edit2->setEchoMode(QLineEdit::Password);    //设置密文模式

    //QPushbutton
    //登录按钮
    btn1->resize(80,30);    //设置大小
    btn1->move(350,450);    //移动位置
    btn1->setIcon(QIcon(":/ikun/jiaoyou3.png"));    //设置图标

    btn2->resize(btn1->size());     //设置大小
    btn2->move(480,450);        //移动位置
    btn2->setIcon(QIcon(":/ikun/on.png"));      //设置图标

    //手动将取消按钮使用qt4版本连接到自定义的槽函数
    connect(btn2, SIGNAL(clicked()), this, SLOT(my_slot()));;

    //使用qt5版本的连接到自定义槽函数中
    connect(btn1, &QPushButton::clicked, this, &MainWindow::btn1_slot);


}

MainWindow::~MainWindow()
{
}

//自定义槽函数
void MainWindow::my_slot(){
    this->close();
}

//自定义按钮1槽函数
void MainWindow::btn1_slot(){
    if(edit1->text() == "admin" && edit2->text() == "123456"){
        qDebug() << "登录成功";
        //发射跳转信号
        emit jump();
        this->close();
    }else{
        qDebug() << "登录失败";
        QMessageBox::information(this, "提示", "账号或密码错误!");
        edit2->clear();
    }
}



//second.cpp
#include "second.h"
#include "ui_second.h"

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

    this->setFixedSize(600,600);   //大小
    this->setWindowTitle("MUWORLD");  //文本内容
    this->setWindowOpacity(0.9);  //透明度
    this->setWindowIcon(QIcon(":/ikun/jaioyou3.png"));  //图标


    ui->label->setPixmap(QPixmap(":/ikun/R-C.jpg"));
    ui->label->setScaledContents(true); //设置文本自适应
}

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

//跳转函数对应槽函数的定义
void Second::jump_slot()
{
    this->show();
}



默认代码加注释:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
思维导图:
请添加图片描述

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

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

相关文章

Web_python_template_injection

考察模版Python flask的模版注入&#xff0c;页面没有回显&#xff0c;只有一段字符串&#xff0c;尝试直接利用Python传参 完全没回显 但是如果直接访问的话&#xff0c;就会利用url报错&#xff0c;将结果给执行带出来&#xff0c;那说明我就可以直接利用这个性质进行ssti模版…

SQL注入--题目

联合查询注入&#xff1a; bugku-这是一个神奇的登录框 手工注入&#xff1a; 点吧&#xff0c;输入0’发现还是&#xff1a; 输入0" 发现报错&#xff1a; 确定可以注入&#xff0c;判断字段有多少个 0"order by 1,2,3# 发现&#xff1a; 说明有两列。 输入 0&qu…

赞同高频接广?品牌复投成B站粉丝催更利器

一直以来&#xff0c;电商行业是B站公开的前五大广告主之一。今年618电商节期间B站发布数据称&#xff0c;B站电商类广告收入迎来爆发&#xff0c;同比增长超400%。其中&#xff0c;站内带货视频数量同比增长近8倍&#xff0c;带货直播场次同比增长近7.5倍。 B站作为中长视频为…

只需要5个技巧,就能让你的独立站更吸引客户

人类很简单——我们都更喜欢第一眼看起来令人心情愉悦的的东西。独立站卖家自由度更高&#xff0c;可以添加很多令人惊叹的产品、调整更优惠的价格并设置多种语言选择来吸引访问者购买&#xff0c;但网站的设计仍然是大多数访问者判断独立站品牌的第一要素。根据可靠调研得知&a…

Linux基础IO(二)

Linux基础IO(二) 文章目录 Linux基础IO(二)缓冲区为什么会有缓冲区缓冲区刷新策略系统有缓冲区吗&#xff1f; 文件系统什么是inode 软硬链接软链接硬链接热知识总结 文件的三个时间动静态库什么是动静态库怎么理解动静态库原理使用 制作一个库前置准备自制静态库使用自制的静态…

根据索引值计算item所在行列索引序号

getRowColIndex(itemIndex 0, colCount 3) {//必选参数&#xff1a;itemIndex是当前元素的索引值&#xff0c;从0开始计算&#xff08;如果是从1开始&#xff0c;则需将传入值-1&#xff0c;即itemIndex--&#xff09;//必选参数&#xff1a;colCount是每一行显示多少个元素r…

使用Anaconda创建虚拟环境并添加到Jupyter notebook内核

1.修改虚拟环境的存放位置&#xff08;可选&#xff09; Windows&#xff1a;打开文件C:\Users\DongZhaoCheng(对应到你本人的用户名)\.condarc,添加envs_dirs: [D:\003SoftDevTool\anaconda_env]&#xff08;对应到你自己执行的目录&#xff09;,保存退出 2.进入系统终端创建…

Windows 11隐藏功能大揭秘

Windows 11隐藏功能大揭秘&#xff01;你了解多少&#xff1f; 不知道你是否已经升级到了Windows 11系统&#xff1f;毕竟&#xff0c;这个备受期待的新系统已经发布有一段时间了&#xff0c;相信大多数用户都已经开始尝试使用微软的新系统了吧。但是&#xff0c;你真的熟悉它…

查看进程环境变量

1、Linux 每一个进程的环境变量存储在 /proc/$PID/environ 中。 而 PID 可用通过 ps / jps(java 进程) 等命令查看。 ps -ef | grep xxxjps文件 /proc/$PID/environ 变量以namevalue的形式描述。多个变量之间由 null&#xff08;‘\0’&#xff09;分隔&#xff0c;为了便于阅…

嵌入式和 Java 走哪条路?

JAVA和嵌入式各有千秋&#xff0c;看个人取舍。 想挣钱挣得快一点&#xff0c;挣得多一点&#xff0c;那就选Java&#xff0c;但有中年危机。 想细水长流一点的&#xff0c;选嵌入式&#xff0c;挣钱挣得慢一点&#xff0c;也稳一点&#xff0c;挣得久一点&#xff0c;中年危…

Beamer学习手册

Beamer学习手册 ZJU Beamer模板解读参考链接 谨以本文记录一下学习beamer的过程 本文基于 Overleaf 的 ZJU Beamer模板 进行学习并修改模板&#xff0c;感谢前辈的贡献&#xff01; ZJU Beamer模板解读 首先在 Overleaf 下载 ZJU Beamer模板 &#xff0c;解压压缩包后&#xf…

Docker网络与Docker Compose服务编排

docker网络 docker是以镜像一层一层构建的&#xff0c;而基础镜像是linux内核&#xff0c;因此docker之间也需要通讯&#xff0c;那么就需要有自己的网络。就像windows都有自己的内网地址一样&#xff0c;每个docker容器也是有自己的私有地址的。 docker inspect [docker_ID]…

064、故障处理之OMM_TiDB

oom 内存溢出&#xff0c;内存泄漏&#xff0c;相当于TiDB不能用了 TiDB Server OOM对业务的影响 TiDB Server上的业务SQL会失败业务响应时间升高前端体验变差 诊断方法 客户端应用 ERROR 2013(HY000): Lost connection to MySQL Server during query日志 dmesg -T | gr…

【ArcGIS Pro二次开发】(54):三调名称转用地用海名称

三调地类和用地用海地类之间有点相似但并不一致。 在做规划时&#xff0c;拿到的三调&#xff0c;都需要将三调地类转换为用地用海地类&#xff0c;然后才能做后续的工作。 一般情况下&#xff0c;三调转用地用海存在【一对一&#xff0c;多对一和一对多】3种情况。 前2种情况…

Vben Admin学习笔记

Modal 弹窗 modal弹窗一般作为单文件组件被引用&#xff0c;下面是两段示例代码&#xff1a; 弹窗文件 Modal.vue // Modal.vue <template><BasicModal v-bind"$attrs" title"Modal Title" :helpMessage"[提示1, 提示2]">Modal I…

【动态规划part07】| 70.爬楼梯(进阶)、322.零钱兑换、完全平方数

目录 &#x1f388;LeetCode70. 爬楼梯 &#xff08;进阶&#xff09; &#x1f388;LeetCode322. 零钱兑换 &#x1f388;LeetCode279.完全平方数 &#x1f388;LeetCode70. 爬楼梯 &#xff08;进阶&#xff09; 链接&#xff1a;70.爬楼梯进阶 假设你正在爬楼梯。需要 …

官网HID描述符工具

USB规范官网提供了一个HID报告描述符生成工具&#xff0c;HID Descriptor Tool | USB-IF 使用我们此工具&#xff0c;我们可以&#xff1a; 创建、编辑和验证HID报告描述符。输出多种输出&#xff08;.txt、.inc、.h等&#xff09;查看一些标准的设备报告描述符示例。 该工具…

【NVMe2.0d 17 - 1】Reservation 介绍

文章目录 关键词概述Reservation 类型Reservation NotificationsSet Features Reservation Notification Mask (Feature Identifier 82h)Set Features Reservation Persistence (Feature Identifier 83h) 关键词 Reservation: Reservation Host:主机 Namespace:命名空间 NVM S…

C++ 核心编程

一、 内存分区模型 C程序在执行时&#xff0c;将内存大方向划分为4个区域 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理 全局区&#xff1a;存放全局变量和静态变量以及常量 栈区&#xff1a;由编译器自动分配释放&#xff0c;存放函数的参数值、…

小程序如何将商品添加到分类

​将商品添加到分类是非常重要的功能&#xff0c;可以让商家更方便地管理分类和商品。下面将具体介绍如何将产品添加到分类中。 步骤一&#xff1a;选中商品 在个人中心点击管理入口&#xff0c;然后找到“商品管理”菜单并点击。找到需要添加的商品&#xff0c;然后选中它。…