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,为小型设计进行了优化。通过电流模式控制实现了进一步的空间节省,从而减少了元件数量,并通过选择高开关频率,减少了电感器的占地面积。输出电…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...