嵌入式:QT Day2

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

源码:

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_OBJECTpublic: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_OBJECTpublic: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-5connect(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信号与自定义的槽函数进行连接-qt4connect(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.mzph.cn/news/10445.shtml

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

相关文章

无涯教程-jQuery - jQuery.getScript( url, callback )方法函数

jQuery.getScript(url&#xff0c;[callback])方法使用HTTP GET请求加载并执行JavaScript文件。 该方法返回XMLHttpRequest对象。 jQuery.getScript( url, [callback] ) - 语法 $.getScript( url, [callback] ) 这是此方法使用的所有参数的描述- url - 包含请求…

mac 移动硬盘未正常退出,再次链接无法读取(显示)

&#xff08;1&#xff09;首先插入自己的硬盘&#xff0c;然后找到mac的磁盘工具 &#xff08;2&#xff09;打开磁盘工具&#xff0c;发现自己的磁盘分区在卸载状态&#xff1b;点击无法成功装载。 &#xff08;3&#xff09;打开终端&#xff0c;输入 diskutil list查看自…

VITE + VUE 全局环境变量使用相关知识

一. 全局环境变量配置及使用 配置&#xff1a; 创建.env和.env.development&#xff0c;.env.production等配置文件&#xff0c;.env.uat, .env.test及其它均可。变量要以大写的VITE_开头&#xff0c; 如VITE_APP_NAME 测试网站 使用&#xff1a; 在代码中 import.meta.env…

Redis应用(1)——生成全局唯一标识ID

1 概述 在实际项目中&#xff0c;根据不同的业务逻辑需要生成唯一的标识id &#xff0c;如购买商品生成的订单号。尽管这个标识id功能非常的简单&#xff0c;但是如果不能成功的生成唯一标识id&#xff0c;那将会影响后续的业务逻辑 。我们可以使用数据库去生成唯一标识id&…

ajax相关

1、HTTP 协议1.1、作用 规范了数据是如何打包的 以及 数据时如何传递的1.2、Message 消息 / 报文 Message 指的是在HTTP客户端与服务器间传递的数据块 分类&#xff1a; 1、Request Message : 客户端向服务器发送的请求消息 2…

经营在线业务的首选客服工具--SS客服

随着网购正在快速取代传统零售业&#xff0c;各行各业的企业都在大力发展电子商务以取悦客户。但是&#xff0c;有这么多可用的电子商务平台&#xff0c;选择一款符合自己发展的平台确实不容易。电子商务平台不仅是企业在线销售产品和服务的地方&#xff0c;也是他们管理日常运…

Qt Core学习日记——第七天QMetaObject(上)

每一个声明Q_OBJECT的类都具有QMetaObject对象 Q_OBJECT宏源代码&#xff1a; #define Q_OBJECT \ public: \ QT_WARNING_PUSH \ Q_OBJECT_NO_OVERRIDE_WARNING \ static const QMetaObject staticMetaObject; \ virtual const QMetaObject *metaObject() const; \ vir…

深度学习入门教程(2):使用预训练模型来文字生成图片TextToImageGenerationWithNetwork

本深度学习入门教程是在polyu HPCStudio 启发以及资源支持下进行的&#xff0c;在此也感谢polyu以及提供支持的老师。 本文内容&#xff1a;在GoogleColab平台上使用预训练模型来文字生成图片Text To Image Generation With Network &#xff08;1&#xff09;你会学到什么&a…

【项目实战】日志系统

文章目录 日志系统1、项目介绍2、开发环境3、核心技术4、日志系统介绍4.1 日志系统的价值4.2 日志系统技术实现 5、相关技术知识5.1 不定参函数5.1.1 不定参宏函数5.1.2 C 风格不定参数使用5.1.3 C风格不定参数使用 5.2 设计模式5.2.1六大原则5.2.2 单例模式5.2.3 工厂模式5.2.…

Fiddler使用教程|渗透测试工具使用方法Fiddler

提示&#xff1a;如有问题可联系我&#xff0c;24小时在线 文章目录 前言一、Fiddler界面介绍二、菜单栏1.菜单Fiddler工具栏介绍Fiddler命令行工具详解 前言 网络渗透测试工具&#xff1a; Fiddler是目前最常用的http抓包工具之一。 Fiddler是功能非常强大&#xff0c;是web…

伦敦金在非农双向挂单

对伦敦金投资有一定经验的投资者都知道&#xff0c;在非农时期&#xff0c;伦敦金市场会出现很大的波动&#xff0c;那么我们如何才能抓住这些波动呢&#xff1f;答案是很难的。但是&#xff0c;有些投资者在多年实践中发明了一种双向挂单的方法&#xff0c;这里和大家一切分享…

向量数据库Milvus的四个版本

目录 MilvusLite版 单机版 分布式版 Milvus Cloud版 Milvus是一个功能强大的向量数据库管理系统,提供了多种版本,以满足不同用户的需求。以下是关于Milvus四个版本的具体介绍。 MilvusLite版 MilvusLite版是Milvus的轻量级版本,适合于小规模数据集和高性能计算场景。…

el-popover在原生table中,弹出多个以及内部取消按钮无效问题

问题&#xff1a;当el-popover和原生table同时使用的时候会失效&#xff08;不是el-table) <el-popover placement"bottom" width"500" trigger"click" :key"popover-${item.id}"></el-popover> 解决&#xff1a; :key…

在 React 中,props(属性)用于在组件之间传递数据

在 React 中&#xff0c;props&#xff08;属性&#xff09;用于在组件之间传递数据。它是父组件向子组件传递信息的一种方式&#xff0c;通过 props&#xff0c;父组件可以向子组件传递数据、回调函数、配置项等。 注意&#xff1a; props 是只读的&#xff0c;它的值由父组件…

Java设计模式-中介者模式

中介者模式 1.中介者模式含义 中介者模式&#xff0c;就是用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地互相引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立的改变它们之间的交互。 其实中介者模式很简单的&#xff0c;就像它的名字一样&a…

深入浅出Pytorch函数——torch.softmax/torch.nn.functional.softmax

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 机器学习中的数学——激活函数&#xff1a;Softmax函数 深入浅出Pytorch函数——torch.softmax/torch.nn.functional.softmax 深入浅出Pytorch函数——torch.nn.Softmax 将Softmax函数应用于沿dim的…

vue 项目中使用阿里巴巴矢量图标库

1.网址&#xff1a;https://www.iconfont.cn/ 2.手动创建自己的项目图标库 选中图标 → 添加入库&#xff08;点击购物车&#xff09;→ 完成后点击上方菜单栏的购物车 → 添加至项目&#xff08;没有则新建项目&#xff09;→ 自动打开项目图标库 → 点击下载至本地 → 点击de…

【Redis-02】Redis的缓存

Redis的缓存 1.概念1.1什么是缓存1.2为什么使用缓存1.3如何使用1.3.1不适用缓存之前1.3.2 缓存模型和思路&#xff08;使用方法&#xff09;1.3.3 使用之后 2.缓存更新策略2.1数据库缓存不一致解决方案2.2数据库和缓存不一致采用什么方案2.3代码实例 3.缓存穿透3.1缓存穿透是什…

(四)RabbitMQ高级特性(消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列

Lison <dreamlison163.com>, v1.0.0, 2023.06.23 RabbitMQ高级特性&#xff08;消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列 文章目录 RabbitMQ高级特性&#xff08;消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列消费端限流利用限流…

一个简单的 Android 版本目录(Version catalog)实现指南

一个简单的 Android 版本目录实现指南 使用 TOML 格式 在本文中&#xff0c;我们将探讨版本目录以及如何实现它。 版本目录 Gradle 版本目录使您能够以可扩展的方式添加和维护依赖项和插件。因此&#xff0c;不必在各个构建文件中硬编码依赖项名称和版本&#xff0c;而是在目…