Qt实现登录界面

news2024/9/20 15:07:18

本文基于Qt实现一个简单的登录界面,主要使用到Widget、button、edit等控件,基于自定义的信号槽实现界面的跳转,使用绘图设备添加背景图等。

1. 创建主界面

设计主界面的样式,并添加相关的控件。如下显示:
在这里插入图片描述
代码如下:
在这里插入图片描述

2. 创建欢迎界面(登录成功之后的界面)

欢迎界面比较简单,就添加了一个返回按钮。代码如下:
在这里插入图片描述

3. 添加登录界面的逻辑

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // 退出
    connect(ui->btnExit, &QPushButton::clicked, this, &QWidget::close);
    userWindow = new UserWindow();
    // 主界面接收欢迎界面的退出信号以返回到登录界面
    connect(userWindow, &UserWindow::backHome, this, [=]{
        userWindow->hide();
        this->show();
    });
    
    // 登录
    QString realPwd = "123456";
    QString realUser = "user";
    connect(ui->btnLogin, &QPushButton::clicked, this, [=]{
        QString pwd = ui->pwdEdit->text();
        QString user = ui->userNameEdit->text();
        if (pwd == realPwd && realUser == user) {
            this->hide();
            userWindow->show();
        } else {
            QMessageBox::warning(this, "提示", "账号或密码错误!");
        }
    });
}

4. 添加欢迎界面的逻辑

UserWindow::UserWindow(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::UserWindow)
{
    ui->setupUi(this);
    // 退出按钮发送退出信号,以回退到登陆界面
    connect(ui->btnBack, &QPushButton::clicked, [=]{
        emit backHome();
    });
}

// 重写绘图事件函数,以添加背景图
void UserWindow::paintEvent(QPaintEvent* event)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(":/image/OIP-C.jfif");
    painter.drawPixmap(0, 0, this->width(), this->height(), pix);
}

在头文件中添加退出信号和绘图事件函数:

class UserWindow : public QWidget
{
    Q_OBJECT

public:
    explicit UserWindow(QWidget *parent = nullptr);
    ~UserWindow();
    // 绘图事件函数
    void paintEvent(QPaintEvent* event);
// 在此处添加退出信号
signals:
    void backHome();

private:
    Ui::UserWindow *ui;
};

5. 实现效果

登录界面:
在这里插入图片描述
欢迎界面:
在这里插入图片描述
点击退出后即回到登陆界面。

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

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

相关文章

搜索功能技术方案

1. 背景与需求分析 门户平台需要实现对服务信息的高效查询,包括通过关键字搜索服务以及基于地理位置进行服务搜索。面对未来可能的数据增长和性能需求,选择使用 Elasticsearch 来替代 MySQL 的全文检索功能。这一选择的背景与需求可以总结为以下几点&am…

对标世界一流!望繁信科技受邀参加2023企业财务数智化转型论坛

2023年7月21日,由中国CFO发展中心联合浙江省总会计师协会、南京审计大学会计学院、安徽财经大学会计学院举办的“2023企业财务数智化转型论坛(长三角站)”在上海隆重举办。论坛现场座无虚席,全天候、多维度的话题探讨为广大CFO呈现…

[WEBPWN]BaseCTF week1 题解(新手友好教程版)

WEB A Dark Room 这道题的考点是查看网页源代码 网页源代码这里看到的是网页的html css js在用户浏览器上执行的代码 有时候很多铭感信息,或者关键信息。 查看网页源代码的几种方式 1 右键点击查看网页源代码 2 F12 3 Ctrl U 快捷键 HTTP是什么 HTTP&#x…

车路云一体化系统中的数据交互内容

车路云与相关支撑平台的数据交互是构建智能交通系统的重要组成部分,它涉及到车辆、道路基础设施(路侧单元RSU)与云端平台及其相关支撑平台之间的复杂信息流通与协同工作。以下是对这一过程的详细解析: 一、数据交互的组成部分 车…

DMDRS学习

DMDRS学习 产品介绍 达梦数据复制软件(简称DMDRS)是一种用于同构数据库、异构数据库以及各种数据管理系统之间的数据复制软件。DMDRS采用模块化的设计,通过灵活配置不同的功能模块,实现多功能的数据复制服务,以满足多…

Java虚拟机 - 实战篇

一、内存调优 1. 什么是内存泄漏 (1)内存溢出和内存泄漏 2. 监控Java内存的常用工具 (1)Top命令 (2)VisualVM (3)Arthas (4)Prometheus Grafana &#xff…

人工智能--模型评估指标

背景 1、分类回归模型的评估指标 分类模型的目标是将输入数据分配到一个离散类别中,常见的评估指标如下: 准确率 (Accuracy) 解释:表示模型预测正确的样本占总样本的比例。适用于类分布平衡的情况,但在类别不平衡时表现不佳。…

十张图“拿捏”MySQL中B+树的生成过程

hello,我是大都督周瑜,这篇文章带你用十张图“拿捏”MySQL中B树的生成过程。 更多干货技术文章、面试题,欢迎关注我的公众号:IT周瑜 当MySQL接收到一条以下SQL时,表示要从t1表中查询数据: select * from t…

基于java+springboot+vue实现的林业产品推荐系统(文末源码+Lw)135

基于SpringBootVue的实现的林业产品推荐系统(源码数据库万字Lun文流程图ER图结构图演示视频软件包) 系统功能: 林业产品推荐系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。 并按照软件设计开发流程进行…

新书宣传:《量子安全:信息保护新纪元》

《量子安全:信息保护新纪元》 前言本书的看点本书的目录结语 前言 你好! 这是我第一次发布类广告的博文,目的也很单纯,希望以作者的身份介绍一下自己出版的图书——《量子安全:信息保护新纪元》。此书于2024年7月出版…

【go】pprof 性能分析

前言 go pprof是 Go 语言提供的性能分析工具。它可以帮助开发者分析 Go 程序的性能问题,包括 CPU 使用情况、内存分配情况、阻塞情况等。 主要功能 CPU 性能分析 go pprof可以对程序的 CPU 使用情况进行分析。它通过在一定时间内对程序的执行进行采样&#xff0…

17个常见的电子邮件营销错误及避免方法

我们都在邮件营销中犯过错误。你点击发送,然后感到一阵沉重的感觉。你搞砸了,现在全世界都能看到你的错误。这就像把一封信放在瓶子里扔进无边的互联网海洋,你无法把它收回来。 有些邮件营销错误显而易见,可能会让你所有的努力化…

Redis学习Day3——项目工程开发`

扩展阅读推荐: 黑马程序员Redis入门到实战教程_哔哩哔哩_bilibili 使用git命令行将本地仓库代码上传到gitee/github远程仓库-CSDN博客 一、项目介绍及其初始化 学习Redis的过程,我们还将遇到各种实际问题,例如缓存击穿、雪崩、热Key等问题&…

想将桌面移动到D盘,但是不小心将D盘整个改成桌面的快捷方式了的解决办法

本帖为经验分享,因而附带了解释。 着急的uu请直接按照红色(蓝色)加粗标号直接操作! 目录 一、问题描述 二、问题出现的原因 三、解决方法 一、问题描述 想将桌面移动到D盘,但是不小心将D盘整个改成桌面的快捷方式。…

老旧电力系统安全隐患增加 该如何预防电气线路老化等因素引发的电气火灾呢?

为应对我国电气火灾事故频发的挑战,安科瑞电气股份有限公司开发了AcrelCloud-6000安全用电管理云平台。这一平台依托移动互联网和云计算技术,结合物联网传感器,将办公楼、学校、医院、工厂、体育场馆、宾馆及福利院等人员密集场所的电气安全数…

爬虫--基于python的旅游网站数据分析与可视化实现---附源码78517

摘要 在数字化时代,旅游网站积累了大量用户数据,这些数据中蕴藏着丰富的信息和价值。为了更好地理解用户行为、优化旅游服务体验和提高业务运营效率,对旅游网站数据进行深度挖掘和可视化展示显得尤为重要。本文借助Python编程语言&#xff0c…

前端Excel热成像数据展示及插值算法

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏:《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️生活的理想,就是为了理想的生活! 目录 📘 前言 📘一、热成像数…

最受欢迎的10款电脑监控软件大揭秘,员工电脑监控软件真心推荐

随着科技的迅猛发展,越来越多的企业和个人开始关注电脑监控软件的使用。这类软件能够帮助企业管理者更好地了解员工的工作状况,提升工作效率,并确保公司数据安全;个人用户也可以利用这些软件监控电脑活动,保护家人尤其…

电源自动测试系统有哪些原理和优势?

‌电源自动测试系统是一种自动测试设备,用于对各类电源模块进行功能和性能测试。它采用模块化设计,构建了一个方便快捷、功能齐全的电源测试平台,便于后续的检修和维护,减少对企业生产和测试的影响。 电源自动测试系统的工作原理和…

区块链学习笔记3--以太坊

智能合约:跑在以太坊系统中的代码合同,其实质是一段代码。目前已经存在180多万个智能合约。 智能合约能表达:规则明确,不受主观因素影响的业务。 智能合约能表达:规则不轻易修改的业务 如果业务的规则经常变化&#x…