QStackedWidget

news/2025/1/15 23:59:43/

QStackedWidget

QStackedWidget 是 Qt 框架提供的一个小部件(widget),用于管理多个子部件,并在同一时间只显示其中一个子部件。它可以看作是一个堆栈,每个子部件都相当于堆栈中的一个页面。

QStackedWidget 提供了一种简单的方式来实现页面切换和导航,类似于选项卡控件或向导对话框。只有当前显示的子部件会被渲染,其他子部件则处于隐藏状态。

以下是 QStackedWidget 的一些重要特性和常用方法:

  • 可以通过调用 addWidget(QWidget *widget) 将子部件添加到 QStackedWidget 中。
  • 通过调用 setCurrentWidget(QWidget *widget)setCurrentIndex(int index) 来设置当前显示的子部件。
  • 使用 currentWidget() 方法可以获取当前显示的子部件。
  • 通过调用 addWidget(QWidget *widget) 返回子部件的索引。
  • 可以使用 count() 方法获取子部件的数量。
  • 可以使用 widget(int index) 方法通过索引获取特定位置的子部件。
  • 可以通过调用 removeWidget(QWidget *widget)removeWidget(int index) 删除指定的子部件。

下面是一个简单示例,演示如何使用 QStackedWidget 实现两个页面的切换:

// 创建 QStackedWidget 对象
QStackedWidget *stackedWidget = new QStackedWidget(this);// 创建两个子部件(页面)
QWidget *page1 = new QWidget();
QWidget *page2 = new QWidget();// 将子部件添加到 stackedWidget 中
stackedWidget->addWidget(page1);
stackedWidget->addWidget(page2);// 设置当前显示的子部件为 page1
stackedWidget->setCurrentWidget(page1);// 显示 stackedWidget
stackedWidget->show();

在这个示例中,我们首先创建了一个 QStackedWidget 对象 stackedWidget。然后,我们创建了两个子部件 page1page2。通过调用 addWidget() 方法,我们将这两个子部件添加到 stackedWidget 中。

接下来,通过调用 setCurrentWidget() 方法,我们将当前显示的子部件设置为 page1,这样只有 page1 会被渲染和显示出来。

最后,我们调用 show() 方法显示 stackedWidget

通过使用 QStackedWidget,我们可以根据需要切换显示不同的子部件,从而实现页面之间的切换和导航。


http://www.ppmy.cn/news/1236026.html

相关文章

编译原理Lab1-用FLEX构造C-Minus-f词法分析器

HNU编译原理lab1实验–根据cminux-f的词法补全lexical_analyer.l文件,完成词法分析器。 本文没有添加任何图片,但是以复制输出的形式展现出来了实验结果。 实验要求: 根据cminux-f的此法补全lexical_analyer.l文件,完成词法分析…

opencv 常用操作指南

1.通道交换 读取图像,然后将RGB通道替换成BGR通道,需要注意的是,opencv读取的图像默认是BGR。cv2.cvtColor函数可以参考Color Space Conversions img cv2.imread(imori.jpg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) cv2.imwrite(answe…

手把手教你编写LoadRunner脚本

编写 LoadRunner 脚本需要熟悉脚本语言、业务场景、参数化技术、断言和事务等基础知识。 在实际编写时,可以根据具体测试需求,结合实际情况进行合理的配置和调整。 基本步骤 创建脚本 在 LoadRunner 的 Controller 模块中,创建一个新的测…

Vue2系列 -- 组件自动化全局注册(require.context)

参考官网:https://v2.cn.vuejs.org/v2/guide/components-registration.html 1 作用 省略 import 引入组件 省略 在main.js 中注册 实现自动化引入组件 2 自定义文件夹 在 src 下新建一个 components/base 文件夹,用于存放要自动注册的组件 3 在 base…

SpringBoot使用ObjectMapper之Long和BigDemical类型的属性字符串处理,防止前端丢失数值精度

SpringBoot使用ObjectMapper之Long和BigDemical类型的属性字符串处理,防止前端丢失数值精度! 方式一:注解 使用注解 JsonFormat(shape JsonFormat.Shape.STRING),如下: import com.fasterxml.jackson.annotation.JsonFormat; …

【C++】POCO学习总结(五):功能介绍

【C】郭老二博文之:C目录 1、POCO 简介 github:https://github.com/pocoproject/poco 官网:https://pocoproject.org/index.html POCO第一个版本于 2005 年 2 月发布 POCO完全免费:POCO C 库根据 Boost 软件许可证获得许可。非…

k8s-pod生命周期 4

容器环境初始化 pod 由pod 镜像来提供,在pod 生命周期里容器主要分为两种:初始化容器和主容器 初始化容器一定要成功运行并退出,当初始化容器运行退出完了之后主容器开始和运行 主容器开始运行的时候,有两个探针:存…

Netty Review - 探索ByteBuf的内部机制

文章目录 概念ByteBuf VS Java NIO BufferByteBuf实现类HeapByteBuf vs DirectByteBufPooledByteBuf vs UnpooledByteBuf其他 ByteBuf的实现机制 概念 ByteBuf是Netty中用于处理二进制数据的缓冲区 Netty的ByteBuf是一个可用于高效存储和操作字节数据的数据结构。与传统的Byt…