1019hw

news2024/11/15 8:47:32

登录窗口头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QToolBar>
#include <QMenuBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>//浮动窗口类
#include <QTextEdit>
#include <QIcon>
#include <QMovie>
#include <QString>
#include <cstring>
#include <QDebug>
#include <QMessageBox>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
signals:
    void jump();

public slots:
    void login_slot();

private slots:
    void on_cancel_btn_clicked();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

 登录窗口主文件

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //窗口名
    this->setWindowTitle("QQ");
    this->setWindowIcon(QIcon(":/01login/icon/kun.webp"));
    this->setFixedSize(480,400);
    QMovie *kk=new QMovie(":/01login/icon/dance.gif");
    ui->logo_label->setMovie(kk);
    kk->start();
    ui->logo_label->setScaledContents(true);
    //账号密码图标
    ui->host_label->setPixmap(QPixmap(":/01login/icon/zhanghu.png"));
    ui->host_label->setScaledContents(true);
    ui->passwd_label->setPixmap(QPixmap(":/01login/icon/passwd.jpg"));
    ui->passwd_label->setScaledContents(true);
    //账号密码文本
    ui->host_edit->setPlaceholderText("账号");
    ui->passwd_edit->setPlaceholderText("密码");
    //连接登录跳转信号和槽函数
    connect(ui->login_btn,&QPushButton::clicked,this,&MainWindow::login_slot);
}
void MainWindow::login_slot()
{
    QString usrname = ui->host_edit->text();
    QString pwd = ui->passwd_edit->text();
    if(usrname=="admin"&&pwd=="123456")//若账号密码正确
    {
        qDebug()<< "login success";
        //消息对话框
        QMessageBox msg(
                     QMessageBox::Information,
                    "通知",
                    "登陆成功",
                    QMessageBox::Ok,
                    this);
        int ret = msg.exec();
        if(ret==QMessageBox::Ok)
        {
                   this -> close();
        }
        //跳转到新页面
        emit jump();
    }
    else//若密码错误
    {
        qDebug()<< "login defeat";
        //基于属性弹出消息对话框
        QMessageBox msg(
                     QMessageBox::Critical,
                    "登录失败",
                    "账号和密码不匹配,是否重新登录",
                    QMessageBox::Yes|QMessageBox::No,
                    this);
        int ret = msg.exec();
        if(ret==QMessageBox::Yes)//若yes则清空密码
        {
              ui -> passwd_edit->clear();
        }
        else//若no则直接关闭登录界面
        {
            this->close();
        }

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

}


void MainWindow::on_cancel_btn_clicked()//取消
{
    //基于静态成员函数消息对话框的弹出
    int ret = QMessageBox::question(
                this,
                "再次确认",
                "您是否确定要退出登录",
                QMessageBox::Yes|QMessageBox::No);
    if(ret==QMessageBox::Yes)//若yes则关闭登录界面
    {
          this->close();
    }
    else//若no则关闭对话框继续执行登录界面
    {
    }
}

跳转页面头文件
 

#ifndef SECOND_H
#define SECOND_H

#include <QWidget>

namespace Ui {
class second;
}

class second : public QWidget
{
    Q_OBJECT

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

public slots:
    void jumpslot();
    void sureslot();

private:
    Ui::second *ui;
};

#endif // SECOND_H

跳转页面主文件

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

second::second(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::second)
{
    ui->setupUi(this);
    connect(ui->sure_btn,&QPushButton::clicked,this,&second::sureslot);
}

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

void second::jumpslot()
{
    this->show();
}
void second::sureslot()
{
    this->close();
}

主文件

#include "mainwindow.h"
#include "second.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    second s;
    QObject::connect(&w,&MainWindow::jump,&s,&second::jumpslot);

    return a.exec();
}

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

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

相关文章

2023年中国城市交通数智化发展趋势分析:城市交通数智化渗透率将达到31.0% [图]

城市交通数智化是指将自动化技术、信息技术、通信技术、数字化和智能化技术综合应用于城市交通管理领域&#xff0c;建立实时、准确、高效的城市交通管理体系&#xff0c;提升城市交通管理能力和通行效率。城市交通数智化主要应用场景包括在城市道路、交叉口、隧道、快速路、交…

React TypeScript安装npm第三方包时,些包并不是 TypeScript 编写的

npm install types/包名称 例如&#xff1a;npm install types/jquery 学习链接

C1N短网址 | 核心专利(2) - 防止程序脚本访问短链接

1. 短链接介绍 短链接是一种缩短了URL长度的链接&#xff0c;通常由网址缩短服务提供商生成。短链接可以将长URL缩短为更短的URL&#xff0c;使其更易于分享和传播。短链接通常由一些字母、数字和特殊字符组成&#xff0c;可以通过点击或复制粘贴来访问原始的长URL。短链接在社…

Spring Security认证流程分析(6)

1、认证流程分析 Spring Security中默认的一套登录流程是非常完善并且严谨的。但是项目需求非常多样化, 很多时候&#xff0c;我们可能还需要对Spring Secinity登录流程进行定制&#xff0c;定制的前提是开发者先深刻理解Spring Security登录流程&#xff0c;然后在此基础之上…

竞赛 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

Halcon 中查看算子和函数的执行时间

1、在Halcol主窗口的底栏中的第一个图标显示算子或函数的执行时间&#xff0c;如下图&#xff1a; 2、在Halcon的菜单栏中选择【窗口】&#xff0c;在下拉框中选择【打开输出控制台】&#xff0c;进行查看算子或函数的执行时间&#xff0c;如下图&#xff1a;

「神奇的锚点定位:探索UniApp中实现滚动定位效果,与1024程序员节同欢,解析技术之美」

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 文章简介 &#x1f4d8; 文章背景 &#…

小程序中如何使用自定义组件应用及搭建个人中心布局

一&#xff0c;自定义组件 从小程序基础库版本 1.6.3 开始&#xff0c;小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。 开发者可以将页面内的功能模块抽象成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的…

【Godot引擎开发】简单基础,外加一个小游戏DEMO

博主&#xff1a;_LJaXi 专栏&#xff1a; Godot | 横版游戏开发 Godot 物体规律移动内置虚函数浮点计算浮点数计算数组APIInput单例与自定义单例节点NodeSprite2DArea2DCollisionShape2DKinematicBody2DRigidBody2D Pong游戏场景安排玩家1玩家2小球记分系统文件概要 下面是介绍…

软件工程与计算总结(二十一)软件维护与演化

一.软件维护 1.软件可修改性和软件维护 产品交付给用户并投入运营之后&#xff0c;接下来的工作被看做软件维护。 因为软件不存在“磨损”的情况&#xff0c;所以与其他工程学科相比&#xff0c;软件维护只需要完成少量的使用帮助、故障解决等工作——但并不意味着维护是简单…

IOday8

#include <head.h>//要发送数据的结构体类型 struct msgbuf {long mtype; /* 消息类型*/char mtext[1024]; /* 正文数据 */}; //宏定义正文大小 #define SIZE sizeof(struct msgbuf)-sizeof(long) int main(int argc, const char *argv[]) {key_t key;if((keyft…

oracle-AWR报告生成方法

AWR报告生成方法 1. 以oracle用户登陆服务器 2. 进入到要保存awr报告的目录 3. 以sysdba身份连接数据库 sqlplus / as sysdba4. 执行生成AWR报告命令 ?/rdbms/admin/awrrpt.sql5. 选择AWR报告的文件格式 6. 选择生成多少天的AWR报告 7. 选择报告的快照起始和结束ID 8. 输入生…

Java 对象是什么样子的?

Java 对象是什么样子的&#xff1f; class Student{ int age; String name; }Student s new Student(18, “zhangsan”); 这里的 s 变量&#xff0c;就是我们常说的引用&#xff0c;这里是强引用。指向对象中的 Java对象。 很多人可能认为&#xff0c;堆中存储了 age 18, na…

Linux学习之进程一

目录 一&#xff0c;什么是进程&#xff1f; 1.何为pcb&#xff08;process control block&#xff09;&#xff1f; 2.linux的task_struct 二&#xff0c;了解task_struct的核心字段 标识符 ps指令 getpid指令 ppid&#xff08;parent process id&#xff09; getppid…

DASFAA2023 | 关系数据库和图数据库关键技术融合趋势

编者按&#xff1a; 本期论文导读为大家介绍近年来关系数据库和图数据库关键技术的融合趋势及代表性工作。相关内容来自DASFAA 2023 Tutorial “Fusion of Relational and Graph Database Techniques: An Emerging Trend”&#xff0c;由北京交通大学刘钰博士、中北大学郭青松…

【持续更新】tutorial-Linux-Markdown-etc(Linux、命令、Markdown、md、Tex、LaTex)

1. Linux命令 1.1 常用 查看文件夹下文件数量: ls -l | wc -l7zip: 解压&#xff1a;7z x compressed_file.7z -o/path/to/destination # 注意-o和目标路径是连起来的&#xff0c;没有空格压缩&#xff1a;7z a compressed_file.zip destination_path conda 查看 conda 拥有的…

@JsonCreator(mode = JsonCreator.Mode.DELEGATING) @JsonValue解释

@JsonCreator(mode = JsonCreator.Mode.DELEGATING)public MessageId(Long id) {this.id = id;}<

【中级网络工程师】下午网络配置题

目录 dis ip routing-table 路由表如何查看 静态路由配置&#xff1a; rip和ospf配置 ACL配置 定义ACL过程 关键字traffic-filter inbound 和 traffic-filter outbpund 两种安装模式 DHCP服务 基于全局分配&#xff1a; 基于接口分配&#xff1a; 如何将划分的VLAN和创…

如何确认栈中申请的变量地址

一般一个程序被加载到内存后执行而成为一个进程。进程在内存中是分区域加载的&#xff0c;分别是代码段、数据段、bss段等等。 函数中定义的变量一般存在于栈中。现在我们通过实验验证一下&#xff0c;函数中定义的变量&#xff0c;到底存在与进程哪个位置。 1.测试程序 #in…

opencv入门到精通——图片,视频,摄像头的读取与保存

简介 OpenCV是一个流行的开源计算机视觉库&#xff0c;由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包&#xff0c;可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。OpenCV主要使用C语言编写&#xff0c;同时也支持Python、Java、C等…