qt登录界面的完善

头文件1

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QPushButton>
#include<QLineEdit>
#include<QLabel>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    int btn;
    int btn1;
signals:
    //void my_signal();
    void jump();
public slots:
    //void on_btn2_my_slot();
private slots: // 确保在这里声明槽函数
    void onLoginClicked();
    void onloginclicked1();

private:
    QLineEdit *edit1; // 声明为类成员
    QLineEdit *edit2; // 声明为类成员
};
#endif // WIDGET_H

头文件2

#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 jump_slot()
    {
        this->show();

    }

private:
    Ui::second *ui;
};

#endif // SECOND_H

主函数

#include "widget.h"
#include"second.h"

#include <QApplication>

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

    return a.exec();
}

源文件1

#include "widget.h"
#include <QMessageBox> // 添加QMessageBox头文件

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setWindowTitle("QQ");
    this->setWindowIcon(QIcon("D:\\嵌入式学习\\墨镜.png"));
    this->setFixedSize(800, 600);

    QPushButton * btn1 = new QPushButton;
    btn1->setParent(this);
    btn1->setText("登录");
    btn1->setStyleSheet("color:white; background-color:skyblue; border-radius:10px;");
    btn1->resize(100, 50);
    btn1->move(270, 450);

    QPushButton * btn2 = new QPushButton("取消", this);
    btn2->setStyleSheet("color:white; background-color:skyblue; border-radius:10px;");
    btn2->resize(btn1->size());
    btn2->move(btn1->x() + btn1->width() + 20, btn1->y());

    connect(btn1, &QPushButton::clicked, this, &Widget::onLoginClicked); // 使用Qt5版本的信号与槽连接
    connect(btn2, &QPushButton::clicked, this, &Widget::onloginclicked1); // 使用Qt5版本的信号与槽连接

    QLabel * lab1 = new QLabel("密码", this);
    lab1->move(btn1->x() - 50, btn1->y() - 80);

    QLabel * lab2 = new QLabel("账号", this);
    lab2->move(lab1->x(), lab1->y() - 50);

    edit1 = new QLineEdit(this); // 将edit1声明为类成员
    edit1->move(lab1->x() + lab1->width() - 50, lab1->y() - 5);
    edit1->setStyleSheet("color:black; background-color:pink;");
    edit1->resize(300, 30);
    edit1->setPlaceholderText("密码");
    edit1->setEchoMode(QLineEdit::Password);
    edit1->setAlignment(Qt::AlignCenter);

    edit2 = new QLineEdit(this); // 将edit2声明为类成员
    edit2->move(edit1->x(), lab2->y() - 5);
    edit2->resize(300, 30);
    edit2->setStyleSheet("color:black; background-color:pink;");

    QLabel * lab3 = new QLabel("hhh", this);
    lab3->resize(800, 250);
    lab3->setScaledContents(true);
    lab3->setPixmap(QPixmap("C:\\Users\\许曾嘉\\Desktop\\许曾嘉\\许曾嘉\\微信图片_20240928195223"));
}

void Widget::onLoginClicked() {
    QString username = edit2->text(); // 获取账号输入
    QString password = edit1->text(); // 获取密码输入

    // 设置正确的账号和密码
    if (username == "xzj" && password == "123456") {
        QMessageBox::information(this, "登录成功", "欢迎登录!");
        this->close();
        emit jump();
    } else {
        btn1=QMessageBox::warning(this, "登录失败", "账号或密码错误,是否重试。",QMessageBox::Yes|QMessageBox::No);
        if(btn1==QMessageBox::Yes)
        {
          edit1->clear();


        }
        else if(btn1==QMessageBox::No)
        {
            this->close();
        }
    }
}
void Widget::onloginclicked1()
{
  QMessageBox box(QMessageBox::Question,"问题","确定取消登录",QMessageBox::Yes|QMessageBox::No,this);
  btn=box.exec();
  if(btn==QMessageBox::Yes)
  {
      this->close();
  }
  else if(btn==QMessageBox::No)
  {
      box.close();

  }

源文件2

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

second::second(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::second)
{
    ui->setupUi(this);
    this->setFixedSize(800,600);
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssrf学习(ctfhub靶场)

ssrf练习 目录 ssrf漏洞 漏洞形成原理&#xff08;来自网络&#xff09; 寻找ssrf漏洞&#xff0c; 靶场题目 第一题&#xff08;url探测网站下文件&#xff09; 第二关&#xff08;使用伪协议&#xff09; 关于http和file协议的理解 file协议 http协议 第三关&…

Qt-窗口布局按钮输入类

1. 窗口布局 Qt 提供了很多摆放控件的辅助工具&#xff08;又称布局管理器或者布局控件&#xff09;&#xff0c;它们可以完成两件事&#xff1a; 自动调整控件的位置&#xff0c;包括控件之间的间距、对齐等&#xff1b; 当用户调整窗口大小时&#xff0c;位于布局管理器内的…

立即升级!Windows11 24H2 正式版 V26100.2033!

今日&#xff0c;系统之家小编给您带来2024年10最新推出了Windows11 24H2正式版系统下载&#xff0c;该版本系统以微软官方Windows11 24H2 26100.2033 专业版为基础&#xff0c;展开离线制作与优化&#xff0c;安全无毒&#xff0c;且修复了之前版本存在的蓝屏、绿屏等问题&…

手机怎样改网络ip地址?内容详尽实用

随着网络技术的发展&#xff0c;更改手机IP地址已成为一种常见需求。本文将详细介绍如何在不同网络环境下更改手机IP地址&#xff0c;包括移动网络和WiFi网络&#xff0c;以及同时适用于两种网络的方法&#xff0c;内容详尽实用&#xff0c;干货满满。 一、适用于移动网络&…

计算机毕业设计 基于Python的智能停车管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

SpringBoot项目 | 瑞吉外卖 | 短信发送验证码功能改为免费的邮箱发送验证码功能 | 代码实现

0.前情提要 之前的po已经说了单独的邮箱验证码发送功能怎么实现&#xff1a; https://blog.csdn.net/qq_61551948/article/details/142641495 这篇说下如何把该功能整合到瑞吉项目里面&#xff0c;也就是把原先项目里的短信发送验证码的功能改掉&#xff0c;改为邮箱发送验证…

前端vue-配置请求拦截器

1.配置拦截器&#xff0c;记得20行的导出 2.响应拦截器&#xff0c;记得28行的导出 3.拦截器不止可以拦截&#xff0c;还可以添加内容

XILINX MIG驱动

简介 框架图 本章节主要针对MIG读写做详细介绍,首先创建BLOCK DESIGN,工程连接如下图所示: MIG IP介绍 DATAMOVER的配置这里不再做介绍,结合上篇文章讲到DATAMOVER对BRAM进行读写操作,这里通过AXI桥再加一个MIG模块,MIG模块的配置和说明如下: 1、Clock Period:…

[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠

[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠 目录 文章目录 [大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠目录0. 摘要1. 核心内容3. 创新点4. 算法模型5. 实验效果6. 重要数据与实验结论7. 推荐阅读指数&#xff1a;8. 推荐理由 后记 论文…

单细胞转录组 —— simpleaf 原始数据处理

单细胞转录组 —— 原始数据处理实战&#xff08;simpleaf&#xff09; 前言 Alevin-fry 是一个快速、准确且内存节约的单细胞和单核数据处理工具。 Simpleaf 是用 Rust 编写的程序&#xff0c;它提供了一个统一且简化的界面&#xff0c;用于通过 alevin-fry 流程处理一些最…

银河麒麟桌面操作系统V10 SP1:取消安装应用的安全授权认证

银河麒麟桌面操作系统V10 SP1&#xff1a;取消安装应用的安全授权认证 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 使用银河麒麟V10 SP1安装应用时&#xff0c;若频繁遇到安全授权认证提示&#xff0c;可按以下步骤设置&#xff1a; 打开…

音频功放工作原理:【A类】

功率放大器简称功放&#xff1a;它是将小信号放大&#xff0c;这个放大包括电压和电流&#xff0c;产生更大的功率去推动音响放声。 A类功放是指在信号的整个周期内&#xff08;正弦波的正负两个半周&#xff09;&#xff0c;放大器的任何功率输出元件都不会出现电流截止&…

自由学习记录(2)

Unity打包图集相关 Draw Call 实验设置&#xff1a; 我们将创建两个场景&#xff0c;一个场景有高 Draw Call&#xff0c;另一个场景通过优化减少 Draw Call。然后对比它们的帧率&#xff08;FPS&#xff09;。 场景 1&#xff1a;高 Draw Call 场景&#xff08;无优化&…

IDE启动失败

报错&#xff1a;Cannot connect to already running IDE instance. Exception: Process 24,264 is still running 翻译&#xff1a;无法连接到已运行的IDE实例。异常:进程24,264仍在运行 打开任务管理器&#xff0c;找到PID为24264的CPU线程&#xff0c;强行结束即可。 【Ct…

基于java+springboot的旅游信息网站、旅游景区门票管理系统设计与实现

该系统是基于javaspringboot开发的旅游景区门票管理系统。是给师弟开发的大四实习作品。学习过程中&#xff0c;遇到问题可以咨询github作者。 演示地址 前台地址&#xff1a; http://travel.gitapp.cn 后台地址&#xff1a; http://travel.gitapp.cn/admin 后台管理帐号&am…

8.12 矢量图层面要素单一符号使用十二(短划线渲染边界)

8.12 矢量图层面要素单一符号使用十二(短划线渲染边界)-CSDN博客 目录 前言 短划线渲染边界&#xff08;Outline: Hashed Line&#xff09; QGis设置面符号为短划线渲染边界&#xff08;Outline: Hashed Line&#xff09; 二次开发代码实现短划线渲染边界&#xff08;Outl…

人脸表情行为识别系统源码分享

人脸表情行为识别系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

如何用python抓取豆瓣电影TOP250

1.如何获取网站信息&#xff1f; &#xff08;1&#xff09;调用requests库、bs4库 #检查库是否下载好的方法&#xff1a;打开终端界面&#xff08;terminal&#xff09;输入pip install bs4, 如果返回的信息里有Successfully installed bs4 说明安装成功&#xff08;request…

【JS】哈希法解决两数之和

思路 使用哈希法&#xff1a;需要快速查询一个元素是否出现过&#xff0c;或者一个元素是否在集合里时 本题需要一个集合来存放我们遍历过的元素&#xff0c;然后在遍历数组的时候去询问这个集合&#xff0c;符合要求的某元素是否遍历过&#xff0c;也就是 是否出现在这个集合。…

鹧鸪云光伏软件全面解析

一、主要功能 光伏电站常用工具&#xff1a; 投融资估算&#xff1a;帮助用户进行光伏电站项目的投资预算和融资规划。 发电量计算&#xff1a;根据光伏电站的设计参数和当地气候条件&#xff0c;计算电站的发电量。 安装倾角测算&#xff1a;根据屋顶朝向和地理位置&#…