qt 6.7 版本 ,QStackedLayout布局中添两个QWidget,每个QWidget都有一个按钮,点击后分别显示另一个布局

1.代码

在Qt 6.7中,如果你想要将QStackedLayout布局中包含两个QWidget,并且每个QWidget都有一个按钮,点击按钮后显示另一个布局,同时希望将头文件(.h)和源文件(.cpp)分开,你可以按照以下方式组织你的代码:

首先是头文件(例如 MainWindow.h):

 
#ifndef MAINWINDOW_H  
#define MAINWINDOW_H  #include <QWidget>  
#include <QPushButton>  
#include <QLabel>  
#include <QStackedLayout>  class MainWindow : public QWidget {  Q_OBJECT  public:  MainWindow(QWidget *parent = nullptr);  ~MainWindow();  private slots:  void switchToLayout1();  void switchToLayout2();  private:  QWidget *createWidgetWithButtonAndLabel(const QString &buttonText, const QString &labelText);  QStackedLayout *stackedLayout;  QWidget *widget1;  QWidget *widget2;  
};  #endif // MAINWINDOW_H

接下来是源文件(例如 MainWindow.cpp):

#include "MainWindow.h"  
#include <QVBoxLayout>  MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {  // 创建两个带有按钮和标签的小部件  widget1 = createWidgetWithButtonAndLabel("Switch to Layout 2", "This is Layout 1");  widget2 = createWidgetWithButtonAndLabel("Switch to Layout 1", "This is Layout 2");  // 创建堆栈布局并添加小部件  stackedLayout = new QStackedLayout(this);  stackedLayout->addWidget(widget1);  stackedLayout->addWidget(widget2);  // 设置主布局为堆栈布局  this->setLayout(stackedLayout);  
}  MainWindow::~MainWindow() {  
}  QWidget *MainWindow::createWidgetWithButtonAndLabel(const QString &buttonText, const QString &labelText) {  QWidget *widget = new QWidget;  QVBoxLayout *layout = new QVBoxLayout(widget);  QPushButton *button = new QPushButton(buttonText);  QLabel *label = new QLabel(labelText);  layout->addWidget(button);  layout->addWidget(label);  if (buttonText == "Switch to Layout 2") {  connect(button, &QPushButton::clicked, this, &MainWindow::switchToLayout2);  } else {  connect(button, &QPushButton::clicked, this, &MainWindow::switchToLayout1);  }  return widget;  
}  void MainWindow::switchToLayout1() {  stackedLayout->setCurrentIndex(0);  
}  void MainWindow::switchToLayout2() {  stackedLayout->setCurrentIndex(1);  
}

在这个例子中,MainWindow 类有一个私有方法 createWidgetWithButtonAndLabel,它负责创建一个包含按钮和标签的小部件,并根据按钮的文本连接相应的槽函数以切换布局。MainWindow 的构造函数中调用了这个方法两次,以创建两个小部件,并将它们添加到 QStackedLayout 中。点击按钮时,会触发相应的槽函数(switchToLayout1 或 switchToLayout2),从而改变堆栈布局中显示的页面。

2.运行结果

堆栈布局演示

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

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

相关文章

Python基础:register buffer

模型保存下来的参数有两种&#xff1a;需要更新的 Parameter &#xff0c;与是不需要更新的 buffer 。 在模型中&#xff0c;利用backward反向传播&#xff0c;可以通讨requires_grad来得到 buffer 和 parameter 的梯度信息&#xff0c;但是利用 optimizer 进行更新的是 parame…

Apache httpd-vhosts.conf 配置详解(附Demo)

目录 前言1. 基本配置2. http和https3. 重定向和代理配置4. 实战前言 Nginx的相关配置推荐阅读:Nginx将https重定向为http进行访问的配置(附Demo) 1. 基本配置 httpd-vhosts.conf 是 Apache HTTP Server 配置虚拟主机(Virtual Hosts)的文件 虚拟主机允许在一台服务器上…

HarmonyOS NEXT零基础入门到实战-第一部分

构建节页面思路&#xff1a; 1、排版 (分析布局) 2、内容&#xff08;基础组件&#xff09; 3、美化&#xff08;属性方法&#xff09; 设计资源-svg图标 界面中展示图标 ->可以使用svg图标&#xff08;任意放大缩小不失真&#xff0c;可以改颜色&#xff09; 使用方式&a…

重磅活动推荐:2024 CLK 大会启动中,承办单位开放报名

中国 Linux 内核开发者大会&#xff08;简称“CLK 大会”&#xff09;是中国 Linux 内核领域最具影响力的峰会之一&#xff0c;由清华大学、英特尔、富士通南大、IBM、阿里云、华为、腾讯等企业支持主办。大会秉承“自由、协作、创新”理念&#xff0c;以推动和普及开源技术为使…

java中Hashcode的作用【详解版】

一 HashCode作用 1.1 HashCode作用 hashCode是object类的一个方法&#xff0c;用于哈希表结构&#xff0c;主要是用来获取哈希值&#xff0c;用于确定对象在哈希表中的位置&#xff0c;如果两个对象的hashcode相同&#xff0c;那么他们可能被放在哈希表同一个位置(这取决于哈…

【每天值得看】文章获得《每天值得看》人工智能板块推荐第三名!为自己点个赞!!!

[2024-07-19]&#xff5c;CSDN每天值得看&#xff5c;人工智能 ① 【机器学习】Grid Search: 一种系统性的超参数优化方法&#xff08;鑫宝Code:[博客] [成就]&#xff09; [质量分&#xff1a;97&#xff1b;难度等级&#xff1a;未知&#xff1b;新鲜技术&#xff1a;99] 摘…

第2部分:物联网模式在行动

第2部分&#xff1a;物联网模式在行动 上一部分中详细介绍的模式可以混合和匹配&#xff0c;以实现物联网用例。本部分提供了这些模式的有效性证明&#xff0c;以满足不同领域的独特需求并实施用例&#xff0c;包括消费品和家庭自动化、零售、运输、制造和农业。 本部分包括以…

辅助类BigDecima/BigInteger

** 大数据的运算** 编号1方法解释1add2subtract-3multiply*4divide/

如何发一篇顶会论文? 涉及3D高斯,slam,自动驾驶,三维点云等等

SLAM&3DGS 1&#xff09;SLAM/3DGS/三维点云/医疗图像/扩散模型/结构光/Transformer/CNN/Mamba/位姿估计 顶会论文指导 2&#xff09;基于环境信息的定位&#xff0c;重建与场景理解 3&#xff09;轻量级高保真Gaussian Splatting 4&#xff09;基于大模型与GS的 6D pose e…

无重复字符的最长子串(leetcode)

题目来源&#xff1a;https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/ 题意 如题&#xff0c;给定一个字符串s&#xff0c;请你找出其中不含有重复字符的最长子串的长度 思路 考点&#xff1a;哈希表滑动窗口 如果我们用两重循…

AutoMQ 生态集成 Redpanda Console

通过 Kafka Web UI 更加便利地管理 Kafka/AutoMQ 集群 随着大数据技术的飞速发展&#xff0c;Kafka 作为一种高吞吐量、低延迟的分布式消息系统&#xff0c;已经成为企业实时数据处理的核心组件。然而&#xff0c;Kafka 集群的管理和监控却并非易事。传统的命令行工具和脚本虽…

C++从入门到起飞之——this指针 全方位剖析!

个人主页&#xff1a;秋风起&#xff0c;再归来~ C从入门到起飞 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 目录 1、this指针 2、C和C语⾔实现Stack对⽐ C实现Stack代码 C实现Stack代…

华为OD机考题(基础API)

基础API 字典排序 List<String> listnew ArrayList(); //add list member Arrays.sort(list);List<Map<String,Integer>> listnew ArrayList(); //add list member Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {Over…

c# listview控件调整标题显示顺序

右键点击listview,选择编辑列 修改DisplayIndex listview在成员位置点击上下箭头移动后&#xff0c;实际显示不会改变&#xff0c;因为DisplayIndex没有改变

【Git】(基础篇四)—— GitHub使用

GitHub使用 经过上一篇的文章&#xff0c;相信大家已经对git的基本操作熟悉了&#xff0c;但哪些使用git的方法只是在本地仓库进行&#xff0c;本文介绍如何使用git和远程仓库进行连接使用。 Github和Gitee 主要用到的两个远程仓库在线平台是github和gitee GitHub GitHub …

STM32第十九课:FreeRTOS移植和使用

目录 需求一、FreeRtos概要二、移植FreeRtos1.复制源码2.内存空间分配和内核相关接口3.FreeRTOSConfig.h4.在工程中添加.c.h 三、任务块操作1.创建任务2.任务挂起&#xff0c;恢复&#xff0c;删除 四、需求实现代码 需求 1.将FreeRtos&#xff08;嵌入式实时操作系统&#xf…

白骑士的C++教学高级篇 3.2 多线程与并发

系列目录 上一篇&#xff1a;白骑士的C教学高级篇 3.1 文件操作 随着计算机硬件的发展&#xff0c;现代计算机通常配备了多核处理器&#xff0c;为并发编程提供了硬件基础。C11引入了一组强大的多线程库&#xff0c;使得开发多线程应用程序变得更加容易和安全。本篇内容将详细…

若依框架中Spring Cloud版本启动失败问题

RuoYiSystemApplication启动不了 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ruoyi.system.mapper.SysConfigMapper.selectConfigList 该问题是因为在我们拉取若依代码到本地之后&#xff0c;没有对配置作改动&#xff0c;而且若依…

在Python中字典是如何通过哈希表实现的以及哈希冲突是如何解决的

哈希表&#xff08;散列表&#xff09;是一种非常重要的数据结构&#xff0c;它提供了快速的插入、查找和删除操作&#xff0c;平均时间复杂度接近O(1)。哈希表通过哈希函数将键&#xff08;key&#xff09;映射到表中的一个位置来访问记录&#xff0c;以加快查找速度。下面分别…

如何使用Python抓取动态网站数据

引言 动态网站的特点和数据抓取的挑战 动态网站通过JavaScript动态生成内容&#xff0c;这使得数据抓取变得更加复杂。传统的静态HTML解析方法无法获取这些动态生成的数据&#xff0c;因为它们在初始加载时并不存在于HTML源代码中。对于数据科学家和开发者来说&#xff0c;从这…