Qt 堆栈窗口(QStackedWidget)
一、QStackedWidget概述
在 Qt 中,堆栈窗口通常指的是 QStackedWidget 控件,它是用于管理多个子窗口或页面的堆叠式容器。QStackedWidget 允许你在一个固定区域内显示多个子窗口,但同时只显示其中一个子窗口,其他子窗口则被堆叠在后面。这使得你可以创建多页的界面,如向导、选项卡或其他多视图应用程序。
以下是有关 QStackedWidget 的详细介绍和使用方法:
- 多页容器:QStackedWidget 是一个多页容器,允许你将多个子窗口放在一个固定区域内。
- 单页显示:在任何给定时间,只有一个子窗口是可见的,其他子窗口被隐藏,可以通过切换来显示不同的子窗口。
- 切换效果:你可以通过切换页面的方式,如设置当前页或使用动画效果,切换可见的子窗口。
二、常用函数介绍
1.addWidget:将子窗口或页面添加到 QStackedWidget
1 QStackedWidget *stackedWidget = new QStackedWidget; 2 QWidget *page1 = new QWidget; 3 QWidget *page2 = new QWidget; 4 stackedWidget>addWidget(page1); 5 stackedWidget>addWidget(page2);2.removeWidget:从 QStackedWidget 中移除子窗口
stackedWidget>removeWidget(page1);3.setCurrentIndex:设置当前显示的子窗口的索引
stackedWidget>setCurrentIndex(1); // 显示第二个子窗口4urrentIndex:获取当前显示的子窗口的索引
int index = stackedWidget>currentIndex();5ount:获取 QStackedWidget 中子窗口的数量
int numPages = stackedWidget>count();6.widget:获取指定索引位置的子窗口
QWidget *page = stackedWidget>widget(0); // 获取第一个子窗口7.widget 信号:在子窗口切换时触发的信号
1 QObject::connect(stackedWidget, &QStackedWidget::currentChanged, [&](int index) );8.stackedWidget>setCurrentWidget(page2); // 显示第二个子窗口
stackedWidget>setCurrentWidget(page2); // 显示第二个子窗口9urrentWidget:获取当前显示的子窗口的指针
QWidget *currentPage = stackedWidget>currentWidget();10.slideInNext 和 slideInPrev:切换到下一个或上一个子窗口,带有滑动效果
1 stackedWidget>slideInNext(); 2 stackedWidget>slideInPrev();这些函数可以帮助你配置和管理 QStackedWidget 控件,以便在一个固定区域内显示多个子窗口,并根据需要切换它们。你可以使用这些函数来创建多页的用户界面,如向导、选项卡和多视图应用程序。通过连接 currentChanged 信号,你还可以监测子窗口的切换事件。
三、示例代码
1 #include "main_windoh" 2 3 MainWindow::MainWindow(QWidget *parent) 4 : QWidget(parent) 5 "); 14 QWidget *page2 = new QWidget(this); 15 page2>setStyleSheet("QWidget"); 16 QWidget *page3 = new QWidget(this); 17 page3>setStyleSheet("QWidget"); 18 19 // 添加页面到堆叠窗口 20 m_pStackedWidget>addWidget(page1); 21 m_pStackedWidget>addWidget(page2); 22 m_pStackedWidget>addWidget(page3); 23 24 25 // 创建按钮用于切换页面 26 QPushButton *pPevButton = new QPushButton("上一页", this); 27 connect(pPevButton, &QPushButton::clicked, this, &MainWindow::onPrevButtonClicked); 28 29 QPushButton *pNextButton = new QPushButton("下一页", this); 30 connect(pNextButton, &QPushButton::clicked, this, &MainWindow::onNextButtonClicked); 31 32 // 在页面上添加一些控件 33 // ... 34 35 // 显示第一个页面 36 m_pStackedWidget>setCurrentIndex(0); 37 38 // 布局页面和按钮 39 QVBoxLayout *layout = new QVBoxLayout; 40 layout>addWidget(m_pStackedWidget); 41 layout>addWidget(pNextButton); 42 layout>addWidget(pPevButton); 43 this>setLayout(layout); 44 } 45 46 MainWindow::~MainWindow() 47 49 50 void MainWindow::onPrevButtonClicked() 51 55 56 void MainWindow::onNextButtonClicked() 57效果展示:
上一篇:Qt Chart Themes Example(图表主题)
下一篇:Qt 正则表达式 QRegularExpression
Qt
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?