嵌入式:QT Day2

news2024/11/24 8:28:05

 一、继续完善登录框,当登陆成功时,关闭登陆页面,跳转到新的界面中

源码:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug>           //用于打印输出
#include <QIcon>            //图标头文件
#include <QPushButton>      //按钮类头文件
#include <QLineEdit>        //行编辑器类
#include <QLabel>           //标签文件

class Widget : public QWidget
{
    Q_OBJECT

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

    //标签类
    QLabel *lab1;
    QLabel *lab2;
    QLabel *lab3;

    //行编辑器类
    QLineEdit *edit1;
    QLineEdit *edit2;

    //按钮类
    QPushButton *btn1;
    QPushButton *btn2;

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

public slots:
    void cancel_slot();
    void login_slot();

};
#endif // WIDGET_H

second.h

#ifndef SECOND_H
#define SECOND_H

#include <QWidget>
#include <QDebug>           //用于打印输出
#include <QIcon>            //图标头文件
#include <QPushButton>      //按钮类头文件
#include <QLineEdit>        //行编辑器类
#include <QLabel>           //标签文件


namespace Ui {
class Second;
}

class Second : public QWidget
{
    Q_OBJECT

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

    //标签类
    QLabel *lab1;

public slots:
    void jump_slot();

private:
    Ui::Second *ui;
};

#endif // SECOND_H

widget.cpp

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //设置整体大小、标题及图标
    this->setFixedSize(700, 600);
    this->setWindowTitle("IKUN真爱小屋❤");
    this->setWindowIcon(QIcon(":/icon/1.jpeg"));
    this->setWindowOpacity(0.95);              //设置透明度

    //设置Logo标签
    lab1 = new QLabel(this);
    lab1->resize(700,200);
    lab1->setPixmap(QPixmap(":/icon/2.JPG"));
    lab1->setScaledContents(true);         //设置内容自适应

    //设置用户和密码所图标
    lab2 = new QLabel(this);
    lab2->resize(50,50);
    lab2->setPixmap(QPixmap(":/icon/username.png"));
    lab2->setScaledContents(true);
    lab2->move(150,260);

    lab3 = new QLabel(this);
    lab3->resize(50,50);
    lab3->setPixmap(QPixmap(":/icon/passwd.jpg"));
    lab3->setScaledContents(true);
    lab3->move(150,360);

    //设置行编辑器
    edit1 = new QLineEdit(this);
    edit1->resize(190, 40);
    edit1->move(280, 265);
    edit1->setStyleSheet("border : none; "
                         "border-bottom: 2px solid grey;");
    edit1->setPlaceholderText("账号:");

    edit2 = new QLineEdit(this);
    edit2->resize(190, 40);
    edit2->move(280, 365);
    edit2->setStyleSheet("border : none; "
                         "border-bottom: 2px solid grey;");
    edit2->setPlaceholderText("密码:");
    edit2->setEchoMode(QLineEdit::Password);

    //设置按钮 登录
    btn1 = new QPushButton(this);
    btn1->setText("登录");
    btn1->resize(130,40);
    btn1->move(150, 490);
    btn1->setIcon(QIcon(":/icon/login.png"));
    //手动将登录与自定义的槽函数进行连接,该连接是友好的连接qt-5
    connect(btn1, &QPushButton::clicked, this, &Widget::login_slot);

    //设置按钮 取消
    btn2 = new QPushButton(this);
    btn2->setText("取消");
    btn2->resize(130,40);
    btn2->move(440, 490);
    btn2->setIcon(QIcon(":/icon/cancel.png"));
    //手动将取消按钮的clicked信号与自定义的槽函数进行连接-qt4
    connect(btn2, SIGNAL(clicked()), this, SLOT(cancel_slot()));

}

Widget::~Widget()
{
}

//自定义槽函数的实现
void Widget::cancel_slot(){
    this->close();
}

//自定义槽函数的实现
void Widget::login_slot(){
    if(this->edit1->text() == "admin" && this->edit2->text() == "123456"){
        qDebug() << "登陆成功!";
        emit jump();           //发射跳转函数信号
        this->close();
    }else{
        qDebug() << "登陆失败,请重新登录!";
        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->setWindowTitle("登录成功提示");
    this->setWindowIcon(QIcon(":/icon/3.jpeg"));

    //设置跳转标签
    lab1 = new QLabel(this);
    lab1->setText("登陆成功!");
    lab1->resize(390,300);
    lab1->setAlignment(Qt::AlignCenter);
}

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

//跳转槽信号
void Second::jump_slot()
{
    this->show();
}

main.cpp

#include "widget.h"
#include "second.h"
#include <QApplication>

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

    Second s;    //实例化第二个界面

    //将第一个界面发射信号与第二个界面的展示槽函数连接
    QObject::connect(&w, &Widget::jump, &s, &Second::jump_slot);

    return a.exec();
}

二、新建一个工程文件,将默认提供的代码注释

三、思维导图

 

 

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

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

相关文章

部署 cacti 监控系统

Cacti Cacti&#xff08;流量和性能监测为主&#xff09; Cacti 在英文中的意思是仙人掌的意思&#xff0c;Cacti 是一套基于 PHP、MySQL、SNMP 及 RRDTool 开发的网络流量监测图形分析工具。它通过 snmpget 来获取数据&#xff0c;使用 RRDtool 绘画图形&#xff0c;而且你完…

LiveGBS流媒体平台GB/T28181常见问题-国标设备列表没有数据海康大华宇视华为监控摄像机NVR硬件设备注册不上来如何排查?

LiveGBS中国标设备列表没有数据海康大华宇视华为监控摄像机NVR硬件设备注册不上来如何排查&#xff1f; 1、国标设备列表看不到注册上来的设备2、检查方式2.1、检查设备注册信息2.2、检查服务器防火墙 3、尝试配置免密接入3.1、基础配置->白名单3.2、添加白名单 4、更多排查…

C# 目标平台为x64,自定义控件不可用,显示控件未能加载,错误解决方法

由于项目加载第三方的dll需要编译成x64&#xff0c;设置编译目标为x64 结果打开窗口设计器时&#xff0c;自定义的控件不能显示及加载 错误消息&#xff1a;未能找到类型“XXX”。请确保已引用包含此类型的程序集。如果此类型为开发项目的一部分&#xff0c;请确保已使用针对当…

ChatGPT有几个版本,哪个版本最强,如何选择适合自己的?

​ChatGPT就像内容生产界的瑞士军刀。它可以是数学导师、治疗师、职业顾问、编程助手&#xff0c;甚至是旅行指南。只要你知道如何让它做你想做的事&#xff0c;ChatGPT几乎可以提供你要的任何东西。 但重要的是&#xff0c;你知道哪个版本的ChatGPT最能满足你的需求吗&#x…

STM32CubeIDE(I2C)

目录 一、IIC轮询模式 1.1 配置 1.2 编写AHT20驱动 1.2.1 aht20.h 1.2.2 aht20.c 二、I2C中断 2.1 打开中断 2.2 分离读取流程 2.3 在主函数中重新编写读取流程 2.4 在i2c.c中重新定义stm32f1xx_hal_i2c.h中的两个函数 三、I2CDMA 3.1 配置DMA通道 3.2 代码的修改 一…

【优选算法题练习】day9

文章目录 一、DP35 【模板】二维前缀和1.题目简介2.解题思路3.代码4.运行结果 二、面试题 01.01. 判定字符是否唯一1.题目简介2.解题思路3.代码4.运行结果 三、724. 寻找数组的中心下标1.题目简介2.解题思路3.代码4.运行结果 总结 一、DP35 【模板】二维前缀和 1.题目简介 DP…

LeetCode三步问题(动态规划)

LeetCode三步问题&#xff08;动态规划&#xff09; 编写代码代码优化 链接: 三步问题 编写代码 class Solution { public:int waysToStep(int n) {if(n 1 || n 2) return n;vector<int> dp(n1);const int MOD 1e9 7;dp[0] dp[1] 1;dp[2] 2;for(int i 3;i<n…

WEB:file_include

背景知识 php伪协议 文件包含漏洞 php包含漏洞函数 题目 由题目可知这个是文件包含的题目&#xff0c;先用常用的协议先查看一下 payload ?filenamephp://filter/readconvert.base64-encode/resourceflag.php 出现了 发现filter&#xff0c;base64被过滤了 尝试其他协议 …

Elasticsearch监控工具Cerebro安装

Elasticsearch监控工具Cerebro安装 1、在windwos下的安装 1.1 下载安装包 https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.zip 1.2 解压 1.3 修改配置文件 如果需要修改相关信息&#xff0c;编辑C:\zsxsoftware\cerebro-0.9.4\conf\applica…

c语言用冒泡排序模拟实现qsort排序

1、简单介绍冒泡排序 冒泡排序就是两两相邻元素进行比较&#xff0c;如果不满足顺序就进行交换。现有一组整数&#xff0c;将其用冒泡排序实现排序为升序。 假设有这样一组整数&#xff1a;9 8 7 6 5 由此可知&#xff0c;如果一个整型数组有num个元素&#xff0c;则需走num…

第一次作业 运维高级 MySQL备份与还原

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );CREATE TABLE score ( id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO…

交叉编译----宿主机x86 ubuntu 64位-目标机ARMv8 aarch64

1.交叉编译是什么&#xff0c;为什么要交叉编译 编译&#xff1a;在一个平台上生成在该平台上的可执行代码交叉编译&#xff1a;在一个平台上生成在另一个平台上的可执行代码交叉编译的例子&#xff1a;如51单片机的可执行代码&#xff08;hex文件&#xff09;是在集成环境kei…

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归分位数回归多输入单输出区间…

【Docker】安全及日志管理

目录 一、Docker 安全及日志管理1.1 Docker 容器与虚拟机的区别1. 隔离与共享2. 性能与损耗 1.2Docker 存在的安全问题1.Docker 自身漏洞2.Docker 源码问题 1.3 Docker 架构缺陷与安全机制1. 容器之间的局域网攻击2. DDoS 攻击耗尽资源3. 有漏洞的系统调用4. 共享root用户权限 …

Python in VS Code 2023年7月发布|Mypy 扩展预览版与调试扩展、Pylance 本地化及其他

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 7 月发布&#xff01; 此版本包括以下更新&#xff1a; Mypy 扩展预览版预览版中的调试扩展Pylance 本地化使用 Pylance 的第三方库的索引持久性即将弃用 Python 3.7 支…

新功能 – Cloud WAN:托管 WAN 服务

我很高兴地宣布&#xff0c;我们推出了 Amazon Cloud WAN&#xff0c;这是一项新的网络服务&#xff0c;它可以轻松构建和运营连接您的数据中心和分支机构以及多个 Amazon 区域中的多个 VPC 的广域网&#xff08;WAN&#xff09;。 亚马逊云科技开发者社区为开发者们提供全球的…

win10 双系统 安装 Ubuntu20.04 记录

写这篇博客的原因 我今天晚上想重装ubuntu&#xff0c;结果不小心用genius 把属于win10的分区也给删除&#xff0c;只保留C盘和D盘。重装win10之后&#xff0c;我以为D盘还会有数据在&#xff0c;结果啥没了&#xff0c;甚至我的毕业照都没了。所以还是要准备一块移动硬盘&…

redis启动失败,oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

在redis文件夹下&#xff0c;启动redis正常。 但是加入到system后启动redis失败。 一直处于starting状态。 对比正常redis服务的配置之后&#xff0c;把redis.conf里的守护进程关掉就可以了&#xff08;但是没用system管理之前&#xff0c;直接./redis.server启动是可以的&…

【Lua学习笔记】Lua进阶——函数和闭包

文章目录 函数函数嵌套闭包Closures可变函数函数重载 函数 函数嵌套 function A()print("这里是函数A")return function ()print("返回函数不要起名")end end B A() B()输出&#xff1a; 这里是函数A 返回函数不要起名使用函数嵌套的用法&#xff0c;我…

springboot 之以enable开头的注解

Spring​ 有很多 Enable 开头的注解&#xff0c;平时在使用的时候也没有注意过为什么会有这些注解 Enable 注解 首先我们先看一下有哪些常用的 Enable 开头的注解&#xff0c;以及都是干什么用的。 EnableRetry​&#xff1a;开启Spring 的重试功能&#xff1b; EnableSch…