QT多个界面

ops/2025/1/12 15:53:41/

主函数

#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_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic: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_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();
public:void my_slots();private:Ui::Second *ui;
};#endif // SECOND_H


http://www.ppmy.cn/ops/108840.html

相关文章

生成树详细配置(STP、RSTP、MSTP)

目录 一. 实验内容 STP配置实验 RSTP配置实验 MSTP配置实验 二. 1 ) STP配置实验 实验拓扑 ​编辑 实验配置 实验结果 2 ) RSTP配置实验 实验拓扑 实验配置 实验结果 3 ) MSTP配置实验 实验拓扑 实验配置 ​编辑 实验结果 三 实验总结 一. 实验内容 1) …

使用Ansible实现高效服务器配置管理的最佳实践

使用Ansible实现高效服务器配置管理的最佳实践 在现代IT运维中&#xff0c;服务器的配置管理是一个关键环节。传统的手动配置方法不仅耗时耗力&#xff0c;而且容易出错&#xff0c;特别是在规模庞大的服务器集群中&#xff0c;配置的一致性难以保证。Ansible作为一款无代理的…

redis基本数据结构-string

文章目录 1. redis的string数据结构2. 常见的业务场景2.1 缓存功能案例讲解背景优势解决方案代码实现 2.2 计数器案例讲解背景优势解决方案代码实现 2.3 分布式锁案例讲解背景优势解决方案代码实现 2.4 限流案例讲解背景优势解决方案代码实现 2.5 共享session案例讲解背景优势解…

MmAP(论文解读) : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning

MmAP&#xff1a;跨领域多任务学习的多模态提示对齐 AAAI 2024 摘要 多任务学习&#xff08;Multi-Task Learning&#xff0c;MTL&#xff09;同时训练多个相关的任务&#xff0c;从而能够提高单个任务的性能。通常&#xff0c;一个多任务网络架构包含共享backbone和任务特定…

oracle锁的机制

文章目录 oracle锁的机制1. 概括2.锁的模式3.锁查看 死锁1. 说明2.死锁产生条件3.解决死锁冲突4. 事务和死锁预防总结 oracle锁的机制 1. 概括 1&#xff09;说明 锁是一种机制&#xff0c;多个事务同时访问一个数据库对象时&#xff0c;该机制可以实现对并发的控制 2&…

等保2.0测评之Nginx 中间件

前期调研 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器&#xff0c;一般主要功能会有两种&#xff0c;一种作为一个HTTP服务器进行网站的发布处理&#xff0c;另外一种nginx可以作为反向代理进行负载均衡的实现。所以这里填主要功能的时候就要分清。 查看N…

54. Spiral Matrix

Spiral Matrix Given an m x n matrix, return all elements of the matrix in spiral order. 思路&#xff1a;螺旋矩阵的“削水果”法 通过螺旋联想到“削水果”&#xff0c;即将矩阵“削头”&#xff08;取第一行&#xff0c;并去掉第一行&#xff09;后旋转90&#xff0…

JAVA并发编程AQS原理剖析

很多小朋友面试时候&#xff0c;面试官考察并发编程部分&#xff0c;都会被问&#xff1a;说一下AQS原理。面对并发编程基础和面试经验&#xff0c;专栏采用通俗简洁无废话无八股文方式&#xff0c;已陆续梳理分享了《一文看懂全部锁机制》、《JUC包之CAS原理》、《volatile核心…