20230831-完成登录框的按钮操作,并在登录成功后进行界面跳转

news2024/11/26 16:25:17

登录框的按钮操作,并在登录成功后进行界面跳转

app.cpp

#include "app.h"
#include <cstdio>
#include <QDebug>
#include <QLineEdit>
#include <QLabel>
#include <QPainter>
#include <QString>
#include <QMessageBox>
#include <QRegExp>

APP::APP(QWidget *parent) : QWidget(parent)
{

    //================构建窗口setWindowTitle==============================//
    this->setWindowTitle("阿巴阿巴");
    this->setWindowIcon(QIcon("C:/Users/BlackMC/Desktop/icon/wodepeizhenshi.png"));
    this->resize(430,327);
    //this->setStyleSheet("background-color:pink");
    //设定窗口透明度
    this->setWindowOpacity(1.5);
    //================构建画面===========================================//
    bel3 = new QLabel("",this);
    bel3->resize(430,148);
    //bel3->setPixmap(QPixmap("G:/steam/steamapps/workshop/content/431960/2949578938/preview.jpg"));
    bel3->setPixmap(QPixmap("C:/Users/BlackMC/Desktop/icon/p3.jpg"));
    bel3->setScaledContents(true);//图片自适应
    //================构建标签账户(Lable)================================//
    bel1 = new QLabel("账户",this);
    bel1->resize(35,35);
    bel1->setPixmap(QPixmap("C:/Users/BlackMC/Desktop/icon/userName.jpg"));
    bel1->setScaledContents(true);
    bel1->move(120,163);
    //================构建标签密码(Lable)================================//
    bel2 = new QLabel("密码",this);
    bel2->resize(35,35);
    bel2->setPixmap(QPixmap("C:/Users/BlackMC/Desktop/icon/passwd.jpg"));
    bel2->setScaledContents(true);
    bel2->move(118,220);
    //================构建输入框账户(Lable)==============================//
    edit1 = new QLineEdit(this);
    edit1->setStyleSheet("background-color:cyan");
    edit1->setPlaceholderText("QQ密码/手机/邮箱");
    edit1->resize(150,32);
    edit1->move(bel1->x()+55,163);
    //================构建输入框密码(Lable)==============================//
    edit2 = new QLineEdit(this);
    edit2->setStyleSheet("background-color:cyan");
    edit2->resize(150,32);
    edit2->move(bel2->x()+55,220);
    edit2->setPlaceholderText("密码");
    edit2->setEchoMode(QLineEdit :: Password);
    //================构建按钮登录(QPushButton)=========================//
    but1 = new QPushButton("登录",this);
    but1->setStyleSheet("background-color:orange");
    but1->resize(70,30);
    but1->move(195,280);
    but1->setIcon(QIcon("C:/Users/BlackMC/Desktop/icon/login.png"));
    //================构建按钮取消(QPushButton)=========================//
    but2 = new QPushButton("取消",this);
    but2->setStyleSheet("background-color:orange");
    but2->resize(but1->size());
    but2->move(but1->x()+90,280);
    but2->setIcon(QIcon("C:/Users/BlackMC/Desktop/icon/cancel.png"));
    //================构建按钮登录控件==================================//
    connect(but1,&QPushButton::clicked,this,&APP::on_111_clicked);
    //================使用qt4版本的链接,将按钮发射的pressed信号与按钮槽链接=//
    //================构建按钮取消控件==================================//
    connect(but2,SIGNAL(pressed()),but1,SLOT(close()));

}

APP::~APP()
{
}

//按钮登录的槽函数——1
void APP::on_111_clicked()
{
    int result1 = QString::compare("tjq", edit1->text(), Qt::CaseInsensitive);
    int result2 = QString::compare("123456", edit2->text(), Qt::CaseInsensitive);
    if(result1 == 0 && result2 == 0)    //登录成功!
    {
        int ret = QMessageBox::warning(this, QStringLiteral("Good"), QStringLiteral("登录成功!"), QMessageBox::Cancel | QMessageBox::Ok);
        if( ret == QMessageBox::Ok)
        {
            emit jump();
            this->close();
            //connect(but1,&QPushButton::released,this,&APP::on_jumpsecond);
            //connect(QMessageBox::Ok,SIGNAL(QMessageBox::Ok),this,SLOT(&APP::on_jumpsecond));
        }
    }
    else        //登录失败!
    {
        QMessageBox::warning(this, QStringLiteral("Error!"), QStringLiteral("登录失败!"), QMessageBox::Cancel | QMessageBox::Ok);
        edit2->clear();
    }

}
//按钮登录的槽函数——2
/*void APP::on_jumpsecond()

app.h

#include <QDebug>
#include <QLineEdit>
#include <QLabel>
#include <QPainter>
#include <cstdio>
#include <QString>
#include <QMessageBox>
#include <QRegExp>

class APP : public QWidget
{
    Q_OBJECT

signals:
    void my_signal();//信号函数
    void jump();//信号函数
public slots://自定义的槽函数列(只有槽函数才作用与connect的槽函数参数)
    void on_111_clicked();//登录按钮触发-槽函数
    //void on_jumpsecond();//界面跳转触发-槽函数

public:
    APP(QWidget *parent = nullptr);
    ~APP();
private:
    QLabel *bel1;
    QLabel *bel2;
    QLabel *bel3;
    QLineEdit *edit1;
    QLineEdit *edit2;
    QPushButton *but1;
    QPushButton *but2;
};
#endif // APP_H

second.cpp

#include "second.h"
#include "ui_second.h"

Second::Second(QWidget *parent):QWidget(parent),ui(new Ui::Second)
{
    //================构建窗口setWindowTitle==============================//
    this->setWindowTitle("QQ界面");
    this->setStyleSheet("background-color:pink");
    //this->setWindowIcon(QIcon("C:/Users/BlackMC/Desktop/icon/wodepeizhenshi.png"));
    this->resize(820,327);
    //设定窗口透明度
    this->setWindowOpacity(2.0);
    //===========================================================//



    ui->setupUi(this);
}

Second::~Second()
{
    delete ui;
}

void Second::jump_second()
{
    this->show();
}

second.h

#ifndef SECOND_H
#define SECOND_H

#include <QWidget>

namespace Ui {
class Second;
}

class Second : public QWidget
{
    Q_OBJECT


public slots:      //槽函数
    void jump_second();

public:
    explicit Second(QWidget *parent = nullptr);
    ~Second();

private:
    Ui::Second *ui;
};

#endif // SECOND_H

main.cpp

#include "app.h"
#include "second.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    APP w;
    w.show();
    Second f;

    QObject::connect(&w,&APP::jump,&f,&Second::jump_second);

    return a.exec();
}

Xmain

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

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

相关文章

golang 通用的 grpc http 基础开发框架

go-moda golang 通用的 grpc http 基础开发框架仓库地址: https://github.com/webws/go-moda仓库一直在更新,欢迎大家吐槽和指点 特性 transport: 集成 http&#xff08;echo、gin&#xff09;和 grpc。tracing: openTelemetry 实现微务链路追踪pprof: 分析性能config: 通用…

CDN+GitHub搭建图床

前期搭建博客的时候&#xff0c;老是遇到图片无法加载、加载出错等等问题&#xff0c;很是烦恼。于是想搭建一个图床&#xff0c;进行个人博客图片的存储、显示使用。 ​ 利用GitHubjsDelivrPicGo搭建免费图床&#xff0c;CDN图床就是这么朴实无华&#xff0c;是基于免费CDN与免…

l8-d4 IP地址与端口号

一、分类IP 1.IP 地址及其表示方法 例&#xff1a; 2.IP 地址采用 2 级结构 3.分类的 IP 地址 任意一个IP地址我们都可以迅速的得出类别&#xff0c;并计算得出网络号 当一个主机通过两个网卡同时连接到两网络时&#xff0c;也就是该主机同时拥有两个IP地址&#xff0c;该主机…

【Java】网络通信基础

网络通信基础 IP地址概念格式特殊IP 端口号概念格式注意事项 认识协议概念作用知名协议的默认端口五元组协议分层OSI七层模型TCP/IP五层(或四层)模型网络设备所在分层网络分层对应封装和分用 IP地址 概念 IP地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&…

简单入门--无约束线性模型预测控制

简单入门--无约束模型预测控制 一、模型预测控制是什么&#xff1f;二、无约束线性模型预测控制1. 表达式2. 最优解推导3.MATLAB代码 导读&#xff1a;下棋有高手和菜鸟&#xff0c;高手往往预测未来多步棋局发展&#xff0c;提前布局&#xff0c;而菜鸟只根据当前棋局做选择&a…

构建高效实时数据流水线:Flink、Kafka 和 CnosDB 的完美组合

当今的数据技术生态系统中&#xff0c;实时数据处理已经成为许多企业不可或缺的一部分。为了满足这种需求&#xff0c;Apache Flink、Apache Kafka和CnosDB等开源工具的结合应运而生&#xff0c;使得实时数据流的收集、处理和存储变得更加高效和可靠。本篇文章将介绍如何使用 F…

论文的开题报告怎么写?

最近收到很多私信&#xff0c;在问我关于开题报告的问题。基本都是毕业论文题目怎样选&#xff1f;系统好不好弄&#xff1f;开题报告怎么写啊&#xff1f;啥也不会怎样办呢&#xff1f;系统运行不会&#xff1f;查重问题呀&#xff0c;要马上交开题报告了等等。 毕业论文题目怎…

Python 之__name__的用法以及解释

文章目录 介绍代码 介绍 __name__ 是一个在 Python 中特殊的内置变量&#xff0c;用于确定一个 Python 文件是被直接运行还是被导入为模块。 文件作为模板导入&#xff0c;则其 __name__属性值被自动设置为模块名 文件作为程序直接运行&#xff0c;则__name__属性属性值被自动设…

【FPGA零基础学习之旅#12】三线制数码管驱动(74HC595)串行移位寄存器驱动

&#x1f389;欢迎来到FPGA专栏~三线制数码管驱动 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能指…

stm32之30.DMA

DMA&#xff08;硬件加速方法&#xff09;一般用于帮运比较大的数据&#xff08;如&#xff1a;摄像头数据图像传输&#xff09;&#xff0c;寄存器-》DMA-》RAM 或者 RAM-》DMA-》寄存器提高CPU的工作效率 源码-- #include "myhead.h" #include "adc.h"#…

小白的第一个RNN(情感分析模型)

平台&#xff1a;window10&#xff0c;python3.11.4&#xff0c;pycharm 框架&#xff1a;keras 编写日期&#xff1a;20230903 数据集&#xff1a;英语&#xff0c;自编&#xff0c;训练集和测试集分别有4个样本&#xff0c;标签有积极和消极两种 环境搭建 新建文件夹&am…

【Sentinel】Sentinel与gateway的限流算法

文章目录 1、Sentinel与Hystrix的区别2、限流算法3、限流算法对比4、Sentinel限流与Gateway限流 1、Sentinel与Hystrix的区别 线程隔离有两种方式实现&#xff1a; 线程池隔离&#xff08;Hystrix默认采用&#xff09;信号量隔离&#xff08;Sentinel默认采用&#xff09; 服…

2023.09.03 学习周报

文章目录 摘要文献链接题目亮点本文工作 题目亮点本文工作 题目亮点本文工作 大气污染物传输的相关内容总结 摘要 本周阅读了三篇论文&#xff0c;第一篇文章的核心为改进PageRank算法和标签传播算法实现大气污染物传输分析模型&#xff0c;第二篇文章的核心为将SOD、VGG和LST…

9.3.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-车道线检测

目录 前言1. 车道线检测总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-自动驾驶案例项目self-driving-车道…

AJAX学习笔记2发送Post请求

AJAX学习笔记1发送Get请求_biubiubiu0706的博客-CSDN博客 继续 AJAX发送POST请求 无参数 测试 改回来 测试 AJAX POST请求 请求体中提交参数 测试 后端打断点 如何用AJAX模拟form表单post请求提交数据呢&#xff1f; 设置请求头必须在open之后,send之前 请求头里的设置好比…

yolov5手机版移植

感谢阅读 运行export.py然后百度一个onnx转化工具下载yolov5移动版文件和ncnn修改代码CMakeLists.txt修改修改param的参数![在这里插入图片描述](https://img-blog.csdnimg.cn/7c929414761840db8a2556843abcb2b3.jpeg)yolov5ncnn_jni.cpp修改修改stride16和stride32完工 运行ex…

【AWS实验 】在 AWS Fargate 上使用 Amazon ECS 部署应用程序

文章目录 实验概览目标实验环境任务 1&#xff1a;连接到实验命令主机任务 2&#xff1a;将应用程序容器化任务 3&#xff1a;构建 Web2048 容器任务 4&#xff1a;创建 Amazon ECR 存储库并推送 Docker 映像任务 5&#xff1a;创建 ECS 集群任务 6&#xff1a;测试应用程序总结…

12.redis 持久化

redis 持久化 redis 持久化redis持久化策略RDB > Redis DataBase 定期备份rdb 文件处理rdb 优缺点 AOF > Append Only File 实时备份AOF 工作流程AOF 缓冲区刷新策略AOF 重写机制AOF 重写流程 混合持久化持久化流程总结 redis 持久化 redis 是一个内存数据库&#xff0c…

Mybatis学习|动态sql、动态sql标签

动态SQL 什么是动态SQL: 动态SQL就是指根据不同的条件生成不同的SQL语句 动态SQL就是在拼接SQL语句&#xff0c;我们只要保证SQL的正确性&#xff0c;按照SQL的格式&#xff0c;去排列组合就可以了! 搭建环境 创建一个基础工程 1.导包 2.编写配置文件 3.编写实体类 4.编写实…

OS 内存换入换出

当通过逻辑地址得到虚拟地址&#xff0c;但是发现虚拟地址没有对应的页框号时&#xff0c;就要中断&#xff0c;然后从磁盘中找把这一页读进来&#xff0c;再把页表中的影射做好&#xff0c;再接着原来的程序。 缺页中断进行中断处理 getfreepage 得到物理空闲页 下一句从磁…