QT多个界面

news2024/9/22 23:31:40

主函数

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    Second s;
    QObject::connect(&w,&Widget::my_signals,&s,&Second::my_slots);
    w.show();
    return a.exec();
}

一级界面测试文件

#include "widget.h"  
#include "ui_widget.h"  
#include <QDebug> // 引入QDebug类,但在这段代码中未直接使用  
  
// Widget类的构造函数  
Widget::Widget(QWidget *parent)  
    : QWidget(parent) // 调用父类的构造函数,传入父QWidget指针  
    , ui(new Ui::Widget) // 创建Ui::Widget的实例,用于管理UI  
{  
    ui->setupUi(this); // 初始化UI界面  
  
    // 设置label的背景图片,并使其内容缩放以适应label的大小  
    ui->label->setPixmap(QPixmap(":/pictrue/zz.gif"));  
    ui->label->setScaledContents(true);  
  
    // 设置第二个label的背景图片,并使其内容缩放以适应label的大小  
    ui->label_2->setPixmap(QPixmap(":/pictrue/userName.jpg"));  
    ui->label_2->setScaledContents(true);  
  
    // 设置第三个label的背景图片,并使其内容缩放以适应label的大小  
    ui->label_3->setPixmap(QPixmap(":/pictrue/passwd.jpg"));  
    ui->label_3->setScaledContents(true);  
  
    // 设置第二个输入框为密码模式,输入的文本将显示为圆点  
    ui->lineEdit_2->setEchoMode(QLineEdit::Password);  
  
}  
  
// Widget类的析构函数  
Widget::~Widget()  
{  
    delete ui; // 释放Ui::Widget实例所占用的内存  
}  
  
// 处理第三个按钮(登录按钮)点击事件的槽函数  
void Widget::on_pushButton_3_clicked()  
{  
    // 获取ui界面的账号和密码  
    QString userName = ui->lineEdit->text();  
    QString passwd = ui->lineEdit_2->text();  
  
    // 判断账号密码是否正确  
    if(userName == "admin" && passwd == "123456")  
    {  
        // 显示一个信息对话框,提示登录成功  
        QMessageBox msg(QMessageBox::Information,"提醒","登录成功!",  
                        QMessageBox::Ok,this);  
        int ret=msg.exec(); // 执行对话框,并等待用户响应  
        if(ret==QMessageBox::Ok)  
        {  
            emit my_signals(); // 发射自定义信号  
            this->close(); // 关闭当前窗口  
        }  
    }  
    else  
    {  
        // 显示一个警告对话框,询问是否重新登入  
        QMessageBox msg(QMessageBox::Warning,"登入失败","是否重新登入!",  
                        QMessageBox::Yes|QMessageBox::No,this);  
        int ret=msg.exec(); // 执行对话框,并等待用户响应  
        if(ret==QMessageBox::Yes)  
        {  
            ui->lineEdit->clear(); // 清除账号输入框  
            ui->lineEdit_2->clear(); // 清除密码输入框  
        }  
        else  
        {  
            this->close(); // 关闭当前窗口  
        }  
    }  
}  
  
// 处理第四个按钮(退出按钮)点击事件的槽函数  
void Widget::on_pushButton_4_clicked()  
{  
    // 显示一个询问对话框,询问是否退出登入  
    QMessageBox msg(QMessageBox::Question,"提醒","是否退出登入!",  
                    QMessageBox::Yes|QMessageBox::No,this);  
    int ret=msg.exec(); // 执行对话框,并等待用户响应  
    if(ret==QMessageBox::Yes)  
    {  
        this->close(); // 退出并关闭当前窗口  
    }  
    else  
    {  
        msg.close(); // 关闭对话框但不执行其他操作  
    }  
}

一级界面头文件

#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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

private slots:
    void on_pushButton_3_clicked();

    void on_pushButton_4_clicked();

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

二级界面测试文件

#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::my_slots()
{
    this->show();
}

二级界面头文件

#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:
    void my_slots();

private:
    Ui::Second *ui;
};

#endif // SECOND_H

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

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

相关文章

全面质量管理知识竞赛题库

全面质量管理知识竞赛题库 第 1 章 质量 三、单项选择题 1.根据 ISO9000 标准的定义&#xff0c;“质量”是指“客体的一组固有特性满足要求的程度”&#xff0c;以下&#xff08; B &#xff09;不属于产 品的“固有特性”。 A.产品的寿命 B.产品的价格 C.产品制造和使用的…

民宿|基于java的民宿推荐系统(源码+数据库+文档)

民宿推荐系统 目录 基于java的民宿推荐系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 前台&#xff1a; 后台&#xff1a; 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌…

react-问卷星项目(1)

学习的一位MOOC老师的经验&#xff0c;记录一下学习的过程 本项目技术栈&#xff1a;React18TS4AntDesign5Next.js13 项目&#xff1a;低代码&#xff0c;B/C react官方文档 核心价值&#xff1a; 组件化&#xff1a;不是React原创&#xff0c;但在React中流行开来 数据驱…

怎么用python打开文件

python文件读写文件是最常见的IO操作。Python内置了读写文件的函数&#xff0c;用法和C是兼容的。 读写文件前&#xff0c;我们先必须了解一下&#xff0c;在磁盘上读写文件的功能都是由操作系统提供的&#xff0c;现代操作系统不允许普通的程序直接操作磁盘。 读写文件就是请…

使用java对栅格数据的处理,对栅格文件进行导入导出

需求背景&#xff1a; 对栅格文件进行导入导出&#xff08;使用代码的方式&#xff0c;非命令方式&#xff09;&#xff1b; 当然也可以使用代码和GDAL的方式进行&#xff0c;但是GDAL配置部署不便捷&#xff0c;故选用GeoTools方式来实现。 ps&#xff1a;若是使用命令方式&am…

大模型api谁家更便宜

1 openai 可点此链接查询价格&#xff1a;https://openai.com/api/pricing/ 2 百度 可点此链接查询价格&#xff1a;https://console.bce.baidu.com/qianfan/chargemanage/list 需要注意&#xff0c;百度千帆平台上还提供其他家的模型调用服务&#xff0c; 如llama, yi-34b等…

IDE快速复制文件名

在很多情况下我们需要复制IDE中文件的名称&#xff0c;习惯性的F2却不能重命名 如图操作又比较繁琐 解决方法⭐⭐⭐ 其实直接CtrlC可以复制文件名&#x1f921;&#x1f921;&#x1f921;

7-Zip压缩包如何添加密码,加密后如何取消

压缩包文件大家经常使用&#xff0c;最熟悉的肯定是RAR、ZIP格式压缩文件&#xff0c;但是7z压缩文件格式也很好用&#xff0c;它是三种压缩文件格式中压缩率最大的。想要将文件压缩到最小&#xff0c;使用7z格式可以达到最大化。那么在使用7z压缩格式的时候&#xff0c;我们可…

银河麒麟V10系统软件商店手动更新方法

银河麒麟桌面操作系统V10重新安装之后&#xff0c;有些软件商店未能及时的自动更新&#xff0c;从而软件商店里无法获取最新的软件应用&#xff0c;这个时候就需要我们手动的进行升级更新一下软件商店了&#xff0c;更新之后软件商店里的内容就会增加不少&#xff0c;那么&…

阿尔泰科技案例解析-炼钢厂设备监测解决方案!

案例背景 在一家大型钢铁冶炼厂中&#xff0c;熔炉是生产过程的核心设备&#xff0c;广泛应用于金属冶炼、铸造和加工步骤&#xff0c;如钢铁的冶炼和精炼。为了确保熔炉在最佳状态下运行&#xff0c;并防止潜在的故障或事故&#xff0c;该厂需要对熔炉及厂房内相关设备的多个…

开发模型例题

答案&#xff1a;A 解析&#xff1a;瀑布模型是跟对需求明确的项目 增量模型是将需求分为多个阶段&#xff0c;适合一开始需求不明确的 演化模型适合用户需求不清&#xff0c;需求经常变化的情况 螺旋模型适合庞大&#xff0c;复杂且具有高风险的系统

F12抓包07:Network界面功能详细介绍

课程大纲 ​ 本课介绍F12“网络”&#xff08;Network&#xff09;tab菜单界面的功能区域和使用。 8.1 录制与清空 8.2 过滤与搜索 1、url过滤 2、全局搜索 8.3 保留日志 勾选“保留日志”&#xff1a;刷新界面后请求记录不清空&#xff1b;否则&#xff0c;清空历史请求记录…

西门子博途PLC跑马灯的简单编程方式

新手必学的PLC程序&#xff0c;老电工转型电气工程师必看&#xff01;#自动化##PLC##电工##电气##学习##编程##跑马灯##西门子##外企# 工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

AutoIT:强大的RPA自动化脚本神器,安装到使用的保姆级教程!

作为一个经常需要在Windows上处理各种繁琐任务的“码农”&#xff0c;我对各种自动化工具有着深厚的兴趣。尤其是AutoIT这种工具&#xff0c;让人简直爱不释手。 我有时候需要写一大堆技术文档&#xff0c;里面各种表格、数据&#xff0c;手动操作简直让人头大。那时候&#x…

5款AI头像生成神器,独特头像不是梦!

在各种应用程序和社交媒体平台上&#xff0c;头像几乎无处不在。它不仅仅是个人的标识&#xff0c;更是展现个性和特征的一种方式。随着人工智能技术的不断进步&#xff0c;各种头像生成器应运而生&#xff0c;让我们能够创造出更加独特和个性化的头像。使用这些AI头像生成器非…

How can I register a custom environment in OpenAI‘s gym?

题意&#xff1a;如何在OpenAI的Gym中注册一个自定义环境&#xff1f; 问题背景&#xff1a; I have created a custom environment, as per the OpenAI Gym framework; containing step, reset, action, and reward functions. I aim to run OpenAI baselines on this custom…

tabBar设置底部导航栏

如果应用是一个多 tab 应用&#xff0c;可以通过 tabBar 配置项指定一级导航栏&#xff0c;以及 tab 切换时显示的对应页&#xff0c;简单来说就是像美团外卖下面的导航栏一样可以任意切换 1.首先创建三个页面&#xff0c;在页面里面可以写一些东西或者放一张图片方便区分。 2.…

JavaScript高级进阶(二)

JS弹窗 弹窗与语法 警告窗 window.alert()//用于确保用户可以得到某些信息 确认窗 window.confirm()//用于验证是否接受用户操作 提示窗 window.prompt()//用于提示用户在进入页面前输入某个值 <script> //警告窗 alert(欢迎光临); //提示框 var str prompt(是不是…

秒懂:进程切换——O(1)调度算法

情景理解&#xff1a; 上面这张图展示的就是Linux内核中的调度队列示意图&#xff0c;那么具体是如何进行队列调度的呢&#xff1f; 首先&#xff0c;图中有两个queue[140]&#xff0c;这个就是所谓的队列结构&#xff0c;&#xff08;蓝色和红色扩出来的&#xff09;其中有一…

(Arxiv-2022)eDiff-I:具有一组专家降噪器的文本到图像扩散模型

eDiff-I&#xff1a;具有一组专家降噪器的文本到图像扩散模型 Paper Title&#xff1a;eDiff-I: Text-to-Image Diffusion Models with an Ensemble of Expert Denoisers Paper是NVIDIA 公司发表在arxiv 2022的工作 Paper地址 项目页面地址 图 1. 我们提出的方法 eDiff-I 的示例…