DAY2,Qt(继续完善登录框,信号与槽的使用 )
1.继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中,来回切换页面;
---mychat.h chatroom.h---两个页面头文件
#ifndef MYCHAT_H
#define MYCHAT_H#include <QWidget>
#include <QDebug> //打印信息
#include <QIcon> //图标
#include <QPushButton> //按钮
#include <QLineEdit> //行编辑器类
#include <QLabel> //标签类class Mychat : public QWidget
{Q_OBJECTpublic:Mychat(QWidget *parent = nullptr);~Mychat();QLabel *lab1; //标签类,设置背景QLabel *lab2; //设置账号图标QLabel *lab3; //设置密码图标QLineEdit *edit1; //行编辑器类,设置明文账号QLineEdit *edit2; //设置密文密码QPushButton *but1; //按钮类,设置登录按钮QPushButton *but2; //设置取消按钮signals:void my_signal();void login_jump(); //登录跳转信号public slots:void login_slot(); //发送跳转信号槽void cancle_slot();void returnjump_slot(); //接收返回信号槽};
#endif // MYCHAT_H
#ifndef CHATROOM_H
#define CHATROOM_H#include <QWidget>namespace Ui {
class Chatroom;
}class Chatroom : public QWidget
{Q_OBJECTpublic:explicit Chatroom(QWidget *parent = nullptr);~Chatroom();signals:void return_jump(); //返回跳转信号public slots:void loginjump_slot(); //接收登录跳转槽private slots:void on_returnjump_clicked(); //发送返回跳转信号槽private:Ui::Chatroom *ui;
};#endif // CHATROOM_H
---mychat.cpp chatroom.cpp---两个页面源文件
#include "mychat.h"Mychat::Mychat(QWidget *parent): QWidget(parent)
{//对组件界面的设置qDebug()<<this->size();this->setFixedSize(this->size()); //固定界面尺寸this->setWindowOpacity(0.9); //透明度//设置窗口this->setWindowTitle(" 轻松一刻的你"); //窗口内容this->setWindowIcon(QIcon(":/qt_icon/qie.png")); //窗口图标//设置界面背景,lab1lab1 = new QLabel;lab1->setParent(this); //将当前组件设置为父组件lab1->resize(700,200); //更改标签大小lab1->setPixmap(QPixmap(":/qt_icon/background.jpg"));lab1->setScaledContents(true); //自动适应空间//设置登录页面//账号图标lab2lab2 = new QLabel;lab2->setParent(this); //将当前组件设置为父组件//lab2->setStyleSheet("background-color:blue;"); //参考lab2->resize(50,40); //设置大小lab2->move(170,250); //位置lab2->setPixmap(QPixmap(":/qt_icon/name.png"));lab2->setScaledContents(true); //自动适应空间//密码图标lab3lab3 = new QLabel(this);//lab3->setStyleSheet("background-color:blue;"); //参考lab3->resize(lab2->size()); //设置大小lab3->move(170,320); //位置lab3->setPixmap(QPixmap(":/qt_icon/pwd.png"));lab3->setScaledContents(true); //自动适应空间//行文本设置//输入账号,edit1edit1 = new QLineEdit(this);edit1->move(260,250); //位置qDebug()<<edit1->size(); //获取大小edit1->resize(220,40); //设置大小edit1->setPlaceholderText("账号"); //占位提示//输入密码,edit2edit2 = new QLineEdit(this);edit2->move(260,320); //位置edit2->resize(edit1->size()); //设置大小edit2->setEchoMode(QLineEdit::Password); //设置密文edit2->setPlaceholderText("密码"); //占位提示//登录按钮but1but1 = new QPushButton(this);qDebug()<<but1->size(); //获取大小//but1->setStyleSheet("background-color:red;"); //参考but1->move(340,400); //位置but1->resize(70,40); //设置大小but1->setText("登录"); //文本but1->setIcon(QIcon(":/qt_icon/login.png"));//取消按钮but2but2 = new QPushButton(this);//but2->setStyleSheet("background-color:red;"); //参考but2->move(440,400); //位置but2->resize(but1->size()); //设置大小but2->setText("取消"); //文本but2->setIcon(QIcon(":/qt_icon/cancle.png"));//取消按钮函数连接my_slot(),qt4// connect(btn3,SIGNAL(clicked()),this,SLOT(my_slot())); //与自定义槽函数相连connect(but2,SIGNAL(clicked()),this,SLOT(cancle_slot()));//登录按钮函数连接my_slot1(),qt5connect(but1,&QPushButton::clicked,this,&Mychat::login_slot);}Mychat::~Mychat()
{
}//取消按钮槽函数
void Mychat::cancle_slot()
{this->close();
}//登录按钮槽函数
void Mychat::login_slot()
{if(edit1->text() == "admin" && edit2->text() == "123456"){qDebug()<<"登陆成功!";emit login_jump();this->close();}else{qDebug()<<"登陆失败,请重新登录!";edit2->clear();}
}//接收返回信号槽
void Mychat::returnjump_slot()
{this->show();
}
#include "chatroom.h"
#include "ui_chatroom.h"Chatroom::Chatroom(QWidget *parent) :QWidget(parent),ui(new Ui::Chatroom)
{ui->setupUi(this);
}Chatroom::~Chatroom()
{delete ui;
}void Chatroom::loginjump_slot() //接收登录信号槽
{this->show();
}void Chatroom::on_returnjump_clicked() //发送疯返回信号槽
{emit return_jump();this->close();
}
---main.cpp---两个页面测试文件
#include "mychat.h"
#include "chatroom.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Mychat w;w.show();Chatroom c; //实例化chatroom界面QObject::connect(&w,&Mychat::login_jump,&c,&Chatroom::loginjump_slot); //连接登录调转信号和槽QObject::connect(&c,&Chatroom::return_jump,&w,&Mychat::returnjump_slot); //连接返回调转信号和槽return a.exec();
}
2.新建一个工程文件,将默认提供的代码加上注释信息;
工程管理文件---
头文件---
源文件---
主函数---
3.今日份Qt思维导图;
相关文章:

DAY2,Qt(继续完善登录框,信号与槽的使用 )
1.继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中,来回切换页面; ---mychat.h chatroom.h---两个页面头文件 #ifndef MYCHAT_H #define MYCHAT_H#include <QWidget> #include <QDebug> /…...
【设计模式】设计原则-开闭原则
单一职责原则 定义 当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。作用 1、方便测试;测试时只需要对扩展的代码进行测试。 2、提高代码的可复用性;粒…...

【2500. 删除每行中的最大值】
来源:力扣(LeetCode) 描述: 给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。 执行下述操作,直到 grid 变为空矩阵: 从每一行删除值最大的元素。如果存在多个这样的值,删除其…...

Superset部署
Superset部署 1、安装依赖 (superset) [hadoopnode1 ~]$ yum install -y python-setuptools (superset) [hadoopnode1 ~]$ yum install -y gcc gcc-c libffi-devel python-devel python-pip python-wheel openssl-devel2、安装Superset 2.1 安装(更新)…...
Python3 学习笔记 ~ 怎样打印字符串
Python中变量的打印方法_python打印变量_清欢依旧的博客-CSDN博客 a 9 b 2print(f"{a} / {b} {a/b}") print(a, "//", b, "", (a//b))a -9 print(f"{a} / {b} {a/b}") print(a, "//", b, "", (a//b))...
postgresql安装
安装postgresql Linux下载安装地址 https://www.postgresql.org/download/linux/redhat/ 指定对应版本,指定完成后会生成对应的安装语句 下载对应的包 yum –y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-l…...

ElasticSearch之IK分词器安装以及使用介绍
文章目录 一、IK 分词器简介1. 支持细粒度分词:2. 支持多种分词模式:3. 支持自定义词典:4. 支持拼音分词:5. 易于集成和使用: 二、安装步骤1、下载 IK 分词器插件:2、安装 IK 分词器插件:3. 安装…...

Linux系统安装部署Jenkins详细教程(图文讲解)
前言:最近需要使用Jenkins部署项目,所以想出一篇关于如何使用Linux系统安装部署Jenkins的相关教程,整体部署过程还是挺顺利的,特此分享一下! 目录 一、安装JDK11和Tomcat11 二、准备Jenkins安装包 三、部署Jenkins…...

基于ChatGPT聊天的零样本信息提取7.25
基于ChatGPT聊天的零样本信息提取 摘要介绍ChatIE用于零样本IE的多轮 QA 实验总结 摘要 零样本信息提取(IE)旨在从未注释的文本中构建IE系统。由于很少涉及人类干预,因此具有挑战性。 零样本IE减少了数据标记所需的时间和工作量。最近对大型…...

Pytorch个人学习记录总结 08
目录 神经网络-搭建小实战和Sequential的使用 版本1——未用Sequential 版本2——用Sequential 神经网络-搭建小实战和Sequential的使用 torch.nn.Sequential的官方文档地址,模块将按照它们在构造函数中传递的顺序添加。代码实现的是下图: 版本1—…...

Ansible自动化运维学习——综合练习
目录 (一)练习一 1.新建一个role——app 2.创建文件 3.删除之前安装的httpd服务和apache用户 4.准备tasks任务 (1)创建组group.yml (2)创建用户user.yml (3)安装程序yum.yml (4)修改模板httpd.conf.j2 (5)编写templ.yml (6)编写start.yml (7)编写copyfile.yml (8…...
Java中正则表达式
一、概念 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在众多语言中…...

13 硬链接和软链接
13.1 硬链接和软链接的区别 硬链接:A---B,假设B是A的硬链接,那么只要存在一个,无论删除哪一个,文件都能访问得到。 软链接:类似于快捷方式,删除源文件,快捷方式就访问不了。 13.2 创…...

智能合约安全审计
智能合约安全审计的意义 智能合约审计用于整个 DeFi 生态系统,通过对协议代码的深入审查,可以帮助解决识别错误、低效代码以及这些问题。智能合约具有不可篡改的特点,这使得审计成为任何区块链项目安全流程的关键部分。 代码审计对任何应用…...

矩阵置零(力扣)思维 JAVA
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 输入:matrix [[0,1,2,0],[3,4,5,2],[…...
centos制作openssh 9.3p2 rpm包
标题使用源码制作openssh 9.3p2 的rpm包 准备: 操作系统:CentOS Linux release 7.4.1708 (Core) #测试发现rpm包要在什么系统安装需要就需要在什么系统上制作 工具软件:rpm-build 源码文件:openssh-9.3p2.tar.gz x11-ssh-askpas…...
uni-app:切换页面刷新,返回上一页刷新(onShow钩子函数的使用)
切换页面刷新:通过onShow()便可实现 返回上一页通过uni.navigateBack({delta: 1});实现 以返回上一页刷新为例 从B页面返回上一页到A页面 在A页面写入方法refreshHandler() methods: { // 执行刷新逻辑refreshHandler() {uni.request({url: getApp().globalData.…...

全志F1C200S嵌入式驱动开发(调整cpu频率和dram频率)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 f1c200s默认的cpu频率是408M,默认的dram频率是156M。这两个数值,坦白说,都算不上特别高的频率。因为我们的晶振是24M输入,所以408/24=17,相当于整个cpu的频率只是晶振倍频了17…...

idea 设置了 vm options后无法启动
今天想扩展ideaj的JVM 设置了 vm options后无法启动 找了很久,重新卸载后安装也没有用 后面直接打开idea的bat文件 找到自己idea使用的.vmoptions文件,我是因为之前idea有缓存,一直用的我修改的文件,后面删了就可以启动了...

TPS54620RHLR是一款同步降压转换器
TPS54620RHLR是一款同步降压转换器,通过高效率和集成高压侧和低压侧MOSFET,为小型设计进行了优化。通过电流模式控制实现了进一步的空间节省,从而减少了元件数量,并通过选择高开关频率,减少了电感器的占地面积。输出电…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...