QT第二讲

思维导图

完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中 

loginscuueed.h

#ifndef LOGINSUCCEED_H
#define LOGINSUCCEED_H#include <QWidget>namespace Ui {
class loginSucceed;
}class loginSucceed : public QWidget
{Q_OBJECTpublic:explicit loginSucceed(QWidget *parent = nullptr);~loginSucceed();public slots:void jump_slot();  //跳转函数对应的槽函数private:Ui::loginSucceed *ui;
};#endif // LOGINSUCCEED_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>#include<QWidget>
#include<QDebug>  //信息调试类,用于打印输出-->cout<< printf()
#include<QIcon>   //图标头文件
#include<QPushButton> //按钮类头文件
#include<QLineEdit>  //行编辑器类
#include<QLabel>     //标签类
#include<QMovie>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();QLabel *lab1;QLabel *lab2;QLabel *lab3;QLabel *lab4;QLineEdit *edit1;QLabel *lab5;QLineEdit *edit2;QLabel *lab6;QPushButton *btn1;QLabel *lab7;QPushButton *btn2;signals:void jump(); //登录框发射跳转信号public slots:void cancel_slot();  //取消按钮槽函数void login_slot();   //登陆按钮槽函数public:void jumpBtn_clicked(); //点击跳转private:Ui::Widget *ui;
};
#endif // WIDGET_H

loginsucceed.cpp

#include "loginsucceed.h"
#include "ui_loginsucceed.h"
#include<QDebug>loginSucceed::loginSucceed(QWidget *parent) :QWidget(parent),ui(new Ui::loginSucceed)
{ui->setupUi(this);
}loginSucceed::~loginSucceed()
{delete ui;
}void loginSucceed::jump_slot()
{qDebug()<<"111";this->show();  //展现跳转后的界面
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{//设置截面尺寸this->resize(600,600);this->setWindowTitle("ikun Chat");this->setFixedSize(600,600);this->setWindowOpacity(0.9);lab1 = new QLabel(this);   //主背景lab1->setPixmap(QPixmap("E:\\Qt\\Icon\\1.png"));lab1->resize(30,30);lab1->move(0,0);lab1->setScaledContents(true); //图片大小自适应lab2 = new QLabel("ikun chat",this); //顶部文字lab2->resize(100,30);lab2->move(100,0);lab3 = new QLabel(this);lab3->setPixmap(QPixmap("E:\\Qt\\icon\\bg.png"));lab3->resize(600,150);lab3->move(0,30);lab3->setScaledContents(true);lab4 = new QLabel(this);//账号框图标lab4->setPixmap(QPixmap("E:\\Qt\\QQIcon\\user.png"));lab4->resize(30,30);lab4->move(80,190);lab4->setScaledContents(true);edit1 = new QLineEdit(this);  //账号框edit1->resize(200,30);edit1->move(120,190);edit1->setPlaceholderText("账号");edit1->setStyleSheet("border: 1px solid gray;");lab5 = new QLabel(this);//密码框图标lab5->setPixmap(QPixmap("E:\\Qt\\QQIcon\\password.png"));lab5->resize(30,30);lab5->move(80,240);lab5->setScaledContents(true);edit2 = new QLineEdit(this);  //密码框edit2->resize(200,30);edit2->move(120,240);edit2->setEchoMode(QLineEdit::Password); //密文模式edit2->setPlaceholderText("密码");edit2->setStyleSheet("border: 1px solid gray;");lab6 = new QLabel(this);  //登录图标lab6->setPixmap(QPixmap("E:\\Qt\\QQIcon\\signup.png"));lab6->resize(30,30);lab6->move(200,300);lab6->setScaledContents(true);btn1 = new QPushButton("登录",this); //登录框btn1->resize(80,30);btn1->move(230,300);btn1->setStyleSheet("border: 1px solid gray;");lab7 = new QLabel(this);  //取消图标lab7->setPixmap(QPixmap("E:\\Qt\\QQIcon\\exit.png"));lab7->resize(30,30);lab7->move(320,300);lab7->setScaledContents(true);btn2 = new QPushButton("取消",this); //取消框btn2->resize(80,30);btn2->move(350,300);btn2->setStyleSheet("border: 1px solid gray;");//qt4版本-->>将取消框中的取消按钮和槽函数cancel_slot()连接connect(btn2, SIGNAL(clicked()), this, SLOT(cancel_slot()));//qt5版本-->登录框的登录按钮与参函数login_slot()连接connect(btn1, &QPushButton::clicked, [&](){login_slot();});}Widget::~Widget()
{delete ui;
}//取消按钮槽函数实现
void Widget:: cancel_slot(){this->close();
}//登录按钮槽参函数实现
void Widget::login_slot(){if(edit1->text() == "admin" && edit2->text() == "123456"){qDebug()<<"登录成功";Widget::jumpBtn_clicked();this->close();}else{qDebug()<<"登录失败";edit2->clear();}
}void Widget::jumpBtn_clicked()
{//发射跳转信号emit jump();this->close();  //关闭原先界面
}

main.cpp

#include "widget.h"#include<loginsucceed.h>  //导入跳转界面类#include <QApplication>#include<QDebug>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();loginSucceed login;QObject::connect(&w,&Widget::jump,&login,&loginSucceed::jump_slot);return a.exec();
}
运行结果测试

 点击登录后

新建一个工程文件,将默认提供的代码加上注释信息 

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr); // 构造函数,接收一个可选的父级窗口指针~Widget(); // 析构函数private:Ui::Widget *ui; // 声明一个 Ui::Widget 对象指针,用于访问窗口 UI
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent) //调用QWidget的构造函数,并将parent作为父级指针传递给QWidget的构造函数, ui(new Ui::Widget) //在Widget类的构造函数中用于创建一个Ui::Widget对象的指针
{ui->setupUi(this); //设置UI,将UI界面的部件加载到当前的Widget中
}Widget::~Widget()
{delete ui;  // 释放ui对象的内存,防止内存泄漏
}

main.cpp

#include "widget.h"   // 包含自定义的 Widget 类的头文件#include <QApplication>   // 包含 QApplication 头文件int main(int argc, char *argv[])
{QApplication a(argc, argv);  //创建 Qt 应用程序对象Widget w;  // 实例化 Widget 类对象w.show();  // 显示 Widget 窗口return a.exec();  //运行 Qt 应用程序事件循环
}

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

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

相关文章

PostgreSQL-Centos7源码安装

卸载服务器上的pg13 本来是想删除原来的postgis重新源码安装就行,但是yum安装的PostgreSQL不能直接使用,会提示以下问题: 之前服务是用yum安装的,现在需要删除 -- 删除数据的postgis插件 drop extension postgis; drop extension postgis cascade;删除相关安装包 # 查询…

Redis网络模型

文章目录 Redis网络模型用户空间与内核空间阻塞IO非阻塞IOIO多路复用事件通知机制web服务流程 信号驱动IO异步IO异步与同步 网络模型 Redis网络模型 用户空间与内核空间 服务器大多采用的是Linux系统&#xff0c;使用的应用都是需要通过Linux内核与硬件交互。 为了避免用户应…

F5 LTM 知识点和实验 4-持久化

第四章:持久化 持久化: 大多数应用都是有状态的,比如,使用一个购物网站,最重要的是用户在放入一个商品之后,刷新网页要能继续看到购物车里的东西,这就需要请求报文发到同一个后端服务器上,持久化就能完成这个功能。 持久化支持一下几种场景: 源地址目标地址SSLSIPH…

KNN模型进行分类和回归任务

KNN工作原理 “近朱者赤&#xff0c;近墨者黑”可以说是KNN的工作原理。整个计算过程分为三步&#xff1a;1:计算待分类物体与其他物体之间的距离&#xff1b;2:统计距离最近的K个邻居&#xff1b;3:对于K个最近的邻居&#xff0c;它们属于哪个分类最多&#xff0c;待分类物体就…

聊聊STM32的基本定时器

STM32 的基本定时器&#xff08;Basic Timer&#xff09;是一种简单的定时器模块&#xff0c;用于生成基于时钟频率的定时中断。它可以用于实现各种定时和计时功能&#xff0c;例如延时、频率测量、PWM 生成等。 基本定时器通常由一个 16 位的自由运行计数器和一个预分频器组成…

Mac代码编辑器sublime text 4中文注册版下载

Sublime Text 4 for Mac简单实用功能强大&#xff0c;是程序员敲代码必备的代码编辑器&#xff0c;sublime text 4中文注册版支持多种编程语言&#xff0c;包括C、Java、Python、Ruby等&#xff0c;可以帮助程序员快速编写代码。Sublime Text的界面简洁、美观&#xff0c;支持多…

Bad owner or permissions on ~/.ssh/config

错误原因&#xff1a;设置本地所有文件的权限为741等。。。 在执行ssh免密码登录时报如下的错误&#xff1a;Bad owner or permissions on ~/.ssh/config。 解决方案&#xff1a; chmod 600 ~/.ssh/config

Kendo UI,一个加速Web应用界面开发的JavaScript组件库!

Kendo UI是什么&#xff1f; 首先&#xff0c;Kendo UI是一个由四个JavaScript UI库组成的包&#xff0c;这些库是专为jQuery、Angular、React和Vue原生构建的&#xff0c;每一个都是用一致的API和主题构建的。所以无论开发者怎么选择&#xff0c;所开发的Web应用始终保持了现…

this关键字和同步异步宏认为微任务理解

目录 js面试常见问题&#xff1a;1.this指向 2.闭包定义和作用 3.原型链 4.异步协程 this关键字 this主要有以下几个使用场合。 1&#xff09;全局环境 &#xff08;2&#xff09;构造函数 &#xff08;3&#xff09;对象的方法 避免多层this 避免数组处理方法中的 this 避免回…

推荐几个Windows iso镜像下载的网站

文章目录 1. 微软官网2. MSDN网站3. 系统库(xitongku)4. 其他网站最后总结 给大家推荐几个 Windows iso镜像下载网站 1. 微软官网 入口地址&#xff1a;https://www.microsoft.com/zh-cn/software-download 以下载Windows11为例&#xff1a; 1&#xff09;找到下载Windows11…

undefined reference to `__android_log_print‘

报错描述 在 Android NDK 相关的工程构建中&#xff0c;出现报错&#xff1a; undefined reference to __android_log_print’ 翻译成 QM 能理解的话&#xff1a; 在链接阶段&#xff0c; 遇到一个需要被链接的符号 __android_log_print, 但是没有在给出的依赖库里面找到 __an…

【LeetCode】114.二叉树展开为链表

题目 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&…

day43-Spring_IOC

0目录 1.2.3 1. Spring_IOC 1.1 定义&#xff1a;轻量级框架&#xff0c;java EE的春天&#xff0c;主流框架 1.2 Spring特性&#xff1a;IOC控制反转&#xff1b;AOP面相切面 1.3 组成部分&#xff1a;Spring在SSM中所起到的作用&#xff08;SpringMVC和Mybatis框架的黏…

flutter 打包iOS安装包

flutter iOS Xcode打包并导出ipa文件安装包 1、 Xcode配置 1、 启动打包 1、 等待打包 1、 打包完成、准备导出ipa 1、 选择模式 1、 选择配置文件 1、 导出 1、 选择导出位置 1、 得到ipa

区分jdbcTemplate操作数据库和mybatis操作数据库

JdbcTemplate和MyBatis是Java中常用的两种数据库操作方式。它们在实现上有一些区别&#xff0c;下面我将为你介绍它们的主要特点和区别&#xff1a; JdbcTemplate&#xff1a; JdbcTemplate是Spring框架中提供的一个类&#xff0c;用于简化JDBC操作。使用JdbcTemplate时&#x…

【业务功能篇58】Springboot + Spring Security 权限管理 【下篇】

4.2.2.3 SpringSecurity工作流程分析 SpringSecurity的原理其实就是一个过滤器链&#xff0c;内部包含了提供各种功能的过滤器。这里我们可以看看入门案例中的过滤器。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjoRRost-1690534711077)(http…

数字信号处理中的基本运算——加法运算

1. 一位全加器 2. 二进制加法原理 两个N位二进制补码相加&#xff0c;为防止溢出时导致计算结果错误&#xff0c;可将这两个加数先进行符号位扩展&#xff0c;变为N1位二进制数&#xff0c;然后相加&#xff0c;结果亦取N1位&#xff0c;可保证运算结果正确。 根据多位加法器…

android存储4--初始化.emulated设备的挂载

android版本&#xff1a;android-11.0.0_r21http://aospxref.com/android-11.0.0_r21 android手机的挂载非常复杂。这篇文章针对emulated存储&#xff0c;介绍它的挂载过程。 一、为什么emulted存储要用很复杂的挂载方式 1&#xff0c; emulted存储是什么 android早期&#…

Debezium日常分享系列之:定制Debezium 信号发送和通知

Debezium日常分享系列之&#xff1a;定制Debezium 信号发送和通知 一、自定义信号和通知通道二、结论 Debezium 2.3 在信号和通知功能方面引入了新的改进。除了 Debezium 提供的预定义信号和通知通道之外&#xff0c;您还可以设置新的信号和通知通道。此功能使用户能够自定义系…

100个网络安全测试面试题

1、Burpsuite常用的功能是什么&#xff1f; 2、reverse_tcp和bind_tcp的区别&#xff1f; 3、拿到一个待检测的站或给你一个网站&#xff0c;你觉得应该先做什么&#xff1f; 4、你在渗透测试过程中是如何敏感信息收集的&#xff1f; 5、你平时去哪些网站进行学习、挖漏洞提交到…