QT-day2

2023-09-18 20:56:50

1、完善登录框

头文件

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMessageBox>      //消息对话框类头文件
#include <QDebug>
#include <QPushButton>
#include "second.h"

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

signals:
    void my_signal();       //定义一个无参无返回值的信号函数
    void jump();            //自定义跳转信号函数
private slots:
    void my_slot();         //自定义无参无返回值槽函数

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:

    void on_dengBtn_clicked();

    void on_quBtn_clicked();

private:
    Ui::Widget *ui;
    second *s1;
};
#endif // WIDGET_H

second.h

#ifndef SECOND_H
#define SECOND_H

#include <QWidget>

namespace Ui {
class second;
}

class second : public QWidget
{
    Q_OBJECT

public slots:
    void jump_slot();           //接收跳转信号的槽函数

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

private:
    Ui::second *ui;
};

#endif // SECOND_H

源文件

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    s1 = new second;
    //使用qt5版本,把登录、取消按钮连接
    connect(ui->dengBtn, &QPushButton::clicked, this, &Widget::my_slot);
    connect(ui->quBtn, &QPushButton::clicked, this, &Widget::my_slot);
    connect(this, &Widget::jump, s1, &second::jump_slot);
}

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

//登录按钮对应的槽函数
void Widget::on_dengBtn_clicked()
{
    //传入账号密码
    QString zh = ui->lineEdit1->text();
    QString mm = ui->lineEdit2->text();

    if("admin"!=zh || "123456"!=mm)
    {
        //1、调用构造函数实例化对象
        QMessageBox box(QMessageBox::Critical,               //图标
                        "错误",                                  //对话框标题
                        "账号密码不匹配,是否重新登录",                             //对话框文本内容
                        QMessageBox::Ok | QMessageBox::Cancel,     //提供的按钮
                        this);                                  //父组件
        //box.setDetailedText("");               //提供详细文本内容
        box.setDefaultButton(QMessageBox::Ok);         //将yes设置成默认按钮

        //2、调用exec函数运行对话框
        int ret = box.exec();

        //3、对结果进行判断
        if(ret == QMessageBox::Ok)
        {
            ui->lineEdit1->clear();
            ui->lineEdit2->clear();
            qDebug()<<"继续登录";
        }else if(ret == QMessageBox::Cancel)
        {
            close();
        }
    }else if("admin"==zh && "123456"==mm)
    {
        //1、调用构造函数实例化对象
        QMessageBox box(QMessageBox::Information,               //图标
                        "信息",                                 //对话框标题
                        "登陆成功",                       //对话框文本内容
                        QMessageBox::Ok,               //提供的按钮
                        this);                          //父组件
        //box.setDetailedText("");                    //提供详细文本内容
        box.setDefaultButton(QMessageBox::Ok);         //将Ok设置成默认按钮

        //2、调用exec函数运行对话框
        int ret = box.exec();

        //3、对结果进行判断
        if(ret == QMessageBox::Ok)
        {
            emit jump();
        }
    }

}

//取消
void Widget::on_quBtn_clicked()
{
    //1、调用静态函数实例化对象
    int ret = QMessageBox::information(this,              //父组件
                         "问题",              //对话框标题
                         "是否确定退出登录",            //对话框文本内容
                         QMessageBox::Yes | QMessageBox::No,    //对话框提供的按钮
                         QMessageBox::No);          //默认选中的按钮

    //3、对结果进行判断
    if(ret == QMessageBox::Yes)
    {
        close();
    }
}

second.cpp

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

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

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

//接收跳转信号对应的槽函数
void second::jump_slot()
{
    this->show();
}

主程序

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    
    return a.exec();
}

2、思维导图

更多推荐

数据分析思维-分析方法(基础)

数据分析的基础方法概念理解,其关键在于在业务中锻炼数据分析思维。(将以下基础方法带有好奇心的应用在生活中练习数据分析思维)例如:经典的啤酒与尿布(分析一个爸爸去超市买东西的行为,将尿布和啤酒放在一起)例如:分析夜市上100家店那些营业高、利润经营类型等等主要是养成数据分析的思维,可应用工作、生活日常的方方面面。1.象限

Java学习笔记39——网络编程03

TCP通信程序TCP通信程序TCP通信原理TCP发送数据的步骤TCP接收数据的步骤TCP通讯程序练习练习1练习2练习3练习4练习5练习6TCP通信程序TCP通信原理TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通

URL与URI小结

文章目录一、URL是什么?URL的一般形式:二、分类三、URI总结一、URL是什么?每条由Web服务器返回的内容都是和它管理的某个文件相关联的,这些文件中的每一个都有一个唯一的名字,叫做URL(通用资源定位符),是互联网上一种资源的地址。例如:http://www.google.com:80/index.htmlURL

实训笔记——Spark计算框架

实训笔记——Spark计算框架Spark计算框架一、Spark的概述二、Spark的特点三、Spark的安装部署(安装部署Spark的ClusterManager-资源调度管理器的)3.1本地安装--无资源管理器3.2Spark的自带独立调度器Standalone3.2.1主从架构的软件3.2.2Master/work

第26章_瑞萨MCU零基础入门系列教程之独立看门狗定时器-IWDT

本教程基于韦东山百问网出的DShanMCU-RA6M5开发板进行编写,需要的同学可以在这里获取:https://item.taobao.com/item.htm?id=728461040949配套资料获取:https://renesas-docs.100ask.net瑞萨MCU零基础入门系列教程汇总:https://b

在springboot下将mybatis升级为mybatis-plus

在springboot下将mybatis升级为mybatis-plus1.整体描述2.具体步骤2.1更新pom引用2.2更新yml配置2.3更新config配置2.4BaseEntity修改3.程序启动4.总结1.整体描述之前项目工程用的是mybatis,现在需要将其替换为mybatis-plus,mybatis-pl

电商项目高级篇-01 elasticsearch

电商项目高级篇-01elasticsearch1、linux下安装elasticsearch和可视化工具2、docker设置虚拟机开机启动和容器开机启动3、elasticsearch的curd3.1、新增、更新3.2、查询1、linux下安装elasticsearch和可视化工具将安装好jdk1.8和tomcat的ce

使用jmeter+ant+jenkins+git搭建自动化测试平台

最近正在学习自动化测试,于是随手搭建了一下jmeter+ant+jenkins+git平台。接下来,我会按照jdk,jmeter,ant,jenkins,git这个顺序一步一步的搭建起来。一、jdk。这个就不多说了。我用的是1.8版本的,配环境变量网上一大堆。二、jmeter。官网下载:ApacheJMeter-Dow

数据科学的文本技术 Text Technology(IR信息检索、搜索引擎)

一、文章摘要1.内容*IntroductiontoIRandtextprocessing,systemcomponents*Zipf,Heaps,andothertextlaws*Pre-processing:tokenization,normalisation,stemming,stopping.*Indexing:

在IntelliJ IDEA 中安装阿里P3C以及使用指南

在IntelliJIDEA中安装阿里P3C以及使用指南1.关于阿里p3c1.1说明1.2什么是P3C插件1.3p3c的作用是什么2如何在IDEA中安装p3c2.1插件安装2.2插件使用3.参考连接1.关于阿里p3c1.1说明代码规范检查插件P3C,是根据《阿里巴巴java开发手册(黄山版)》转化而成的自动化插件。1.2

Lnmp架构之mysql数据库实战1

1、mysql数据库编译编译成功2、mysql数据库初始化配置数据目录全局文件修改内容生成初始化密码并进行初始化设定3、mysql主从复制什么是mysql的主从复制?MySQL的主从复制是一种常见的数据库复制技术,用于将一个数据库服务器(称为主服务器)上的数据同步到另一个或多个数据库服务器(称为从服务器)上。在主从复制

热文推荐