当前位置: 首页 > news >正文

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.继续完善登录框&#xff0c;当登录成功时&#xff0c;关闭登录界面&#xff0c;跳转到新的界面中&#xff0c;来回切换页面&#xff1b; ---mychat.h chatroom.h---两个页面头文件 #ifndef MYCHAT_H #define MYCHAT_H#include <QWidget> #include <QDebug> /…...

【设计模式】设计原则-开闭原则

单一职责原则 定义 当应用的需求改变时&#xff0c;在不修改软件实体的源代码或者二进制代码的前提下&#xff0c;可以扩展模块的功能&#xff0c;使其满足新的需求。作用 1、方便测试&#xff1b;测试时只需要对扩展的代码进行测试。 2、提高代码的可复用性&#xff1b;粒…...

【2500. 删除每行中的最大值】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正整数组成。 执行下述操作&#xff0c;直到 grid 变为空矩阵&#xff1a; 从每一行删除值最大的元素。如果存在多个这样的值&#xff0c;删除其…...

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 安装&#xff08;更新&#xff09;…...

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/ 指定对应版本&#xff0c;指定完成后会生成对应的安装语句 下载对应的包 yum –y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-l…...

ElasticSearch之IK分词器安装以及使用介绍

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

Linux系统安装部署Jenkins详细教程(图文讲解)

前言&#xff1a;最近需要使用Jenkins部署项目&#xff0c;所以想出一篇关于如何使用Linux系统安装部署Jenkins的相关教程&#xff0c;整体部署过程还是挺顺利的&#xff0c;特此分享一下&#xff01; 目录 一、安装JDK11和Tomcat11 二、准备Jenkins安装包 三、部署Jenkins…...

基于ChatGPT聊天的零样本信息提取7.25

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

Pytorch个人学习记录总结 08

目录 神经网络-搭建小实战和Sequential的使用 版本1——未用Sequential 版本2——用Sequential 神经网络-搭建小实战和Sequential的使用 torch.nn.Sequential的官方文档地址&#xff0c;模块将按照它们在构造函数中传递的顺序添加。代码实现的是下图&#xff1a; 版本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中正则表达式

一、概念 正则表达式&#xff0c;又称规则表达式。&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在众多语言中…...

13 硬链接和软链接

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

智能合约安全审计

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

矩阵置零(力扣)思维 JAVA

给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 输入&#xff1a;matrix [[0,1,2,0],[3,4,5,2],[…...

centos制作openssh 9.3p2 rpm包

标题使用源码制作openssh 9.3p2 的rpm包 准备&#xff1a; 操作系统&#xff1a;CentOS Linux release 7.4.1708 (Core) #测试发现rpm包要在什么系统安装需要就需要在什么系统上制作 工具软件&#xff1a;rpm-build 源码文件&#xff1a;openssh-9.3p2.tar.gz x11-ssh-askpas…...

uni-app:切换页面刷新,返回上一页刷新(onShow钩子函数的使用)

切换页面刷新&#xff1a;通过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后无法启动 找了很久&#xff0c;重新卸载后安装也没有用 后面直接打开idea的bat文件 找到自己idea使用的.vmoptions文件&#xff0c;我是因为之前idea有缓存&#xff0c;一直用的我修改的文件&#xff0c;后面删了就可以启动了...

TPS54620RHLR是一款同步降压转换器

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

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...