QT QStackedWidget

QStackedWidget 是一个特殊的布局容器,它可以管理多个页面,并且只能显示其中一个页面 。这些页面是QWidget或其派生类的实例,并通过调用addWidget()函数添加到堆栈中。

例如:

#include <QWidgets>

#include <QStackedWidget>

#include<QLabel>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

// 创建堆栈窗体

stackedWidget = new QStackedWidget;

// 创建三个页面并添加到堆栈中

QWidget *page1 = new QWidget;

QVBoxLayout *vbox1 = new QVBoxLayout(page1);

QLabel *label1 = new QLabel("This is page 1");

vbox1->addWidget(label1);

stackedWidget->addWidget(page1);

QWidget *page2 = new QWidget;

QVBoxLayout *vbox2 = new QVBoxLayout(page2);

QLabel *label2 = new QLabel("This is page 2");

vbox2->addWidget(label2);

stackedWidget->addWidget(page2);

QWidget *page3 = new QWidget;

QVBoxLayout *vbox3 = new QVBoxLayout(page3);

QLabel *label3 = new QLabel("This is page 3");

vbox3->addWidget(label3);

stackedWidget->addWidget(page3);

// 设置初始显示页面

stackedWidget->setCurrentIndex(0);

// 显示堆栈窗体

stackedWidget->show();

return a.exec();

}

在这个例子中,创建了一个QStackedWidget对象,并添加了三个页面。每个页面都只有一个标签。然后设置第一个页面为初始显示页面,并最终显示整个堆栈窗体。

还可以使用setCurrentWidget() 函数来切换显示哪个页面,或者使用****indexOf(QWidget*)****函数来获取某个页面在堆栈中的索引。

堆栈窗体QStackedWidget类,在实际应用中,堆栈窗体多与列表框QListWidget 及下拉列表框QComboBox配合使用。

下面通过实例演示QStackedWidget 类的使用

在头文件"stackdlg.h"具体代码如下:

在源文件"stackdlg.cpp"具体代码如下:

运行效果

当选择左侧列表框中不同的选项时,右侧显示所选的不同的窗体。

相关推荐
z***4384几秒前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
道路与代码之旅1 分钟前
“变量也能是函数?——论 Kotlin 中那些会说话的变量,以及它们如何让代码少说废话”
android·开发语言·kotlin
白露与泡影3 分钟前
大厂Java面试前复习的正确姿势(800+面试题附答案解析)
java·开发语言·面试
程序定小飞9 分钟前
基于SpringBoot+Vue的常规应急物资管理系统的设计与实现
java·开发语言·vue.js·spring boot·后端·spring
8***293127 分钟前
Go环境搭建(vscode调试)
开发语言·vscode·golang
songgz34 分钟前
双向流式 JSON 解析架构:并行优化大型文件处理
java·开发语言·json
adfass37 分钟前
桌面挂件时钟/多功能时钟C++
开发语言·c++·算法
Rust语言中文社区43 分钟前
【Rust日报】 walrus:分布式消息流平台,比 Kafka 快
开发语言·分布式·后端·rust·kafka
多多*1 小时前
Threadlocal深度解析 为什么key是弱引用 value是强引用
java·开发语言·网络·jvm·网络协议·tcp/ip·mybatis
Python×CATIA工业智造1 小时前
Python多进程爬虫实战:豆瓣读书数据采集与法律合规指南
开发语言·爬虫·python