QStackedWidget 控件

article/2025/10/13 7:38:47

一、简介

1、QStackedWidget 控件相当于一个容器,提供一个空间来存放一系列的控件,并且每次只能有一个控件是可见的,即被设置为当前的控件。

2、常用接口函数:

  • addWidget:向容器中添加控件
  • setCurrentWidget:设置当前显示的控件
  • currentWidget:返回当前的控件
  • removeWidget:删除指定控件
  • count:容器中控件的个数
  • insertWidget:在指定位置上插入指定控件

3、代码示例

/**** .h头文件 ****/
QStackedWidget      *stackedWidget;
QWidget             *widget_01;
QWidget             *widget_02;
QWidget             *widget_03;/**** 对应.cpp ****/
widget_01 = new QWidget;
widget_02 = new QWidget;
widget_03 = new QWidget;//创建一个QStackedWidget控件
stackedWidget = new QStackedWidget(this);
stackedWidget->addWidget(widget_01);
stackedWidget->addWidget(widget_02);
stackedWidget->addWidget(widget_03);
//设置当前显示的控件为widget_02
stackedWidget->setCurrentWidget(widget_02);

二、应用

一般用于切换不同控件来进行显示,通过Qt Designer来进行设置比较便捷。
如:通过点击按钮切换到不同的Page中,分为Page01,Page02

1、添加对应文件

  • 创建容器中子控件PageItem_01PageItem_02所对应的UI,并按照需要来设计好对应的布局。
  • 分别创建PageItem_01PageItem_02 UI所对应的类文件,并在类文件中实现对应的需求。
  • 在主UI中添加stackedWidget控件,并在对应的文件中添加子控件。
  • 文件结构如下所示:
  • 在这里插入图片描述
  • 对应UI文件如下图所示:
  • 在这里插入图片描述

2、ProStackedWidget对应代码

  • 头文件ProStackedWidget.h
#pragma once
#include "ui_ProStackedWidget.h"
#include "PageItem_01.h"
#include "PageItem_02.h"
#include <QtWidgets/QWidget>
#include <QStackedWidget>class ProStackedWidget : public QWidget
{Q_OBJECTpublic:ProStackedWidget(QWidget *parent = Q_NULLPTR);void SwitchThePage();private:Ui::ProStackedWidgetClass ui;   PageItem_01*              page01;PageItem_02*              page02;
};
  • 主程序ProStackedWidget.cpp
#include "ProStackedWidget.h"
#include <QPushButton>ProStackedWidget::ProStackedWidget(QWidget *parent): QWidget(parent)
{ui.setupUi(this);page01 = new PageItem_01;page02 = new PageItem_02;ui.stackedWidget->addWidget(page01);ui.stackedWidget->addWidget(page02);ui.stackedWidget->setCurrentWidget(page02);connect(ui.pushButton, &QPushButton::clicked, this, &ProStackedWidget::SwitchThePage);int tmp = ui.stackedWidget->currentIndex();
}void ProStackedWidget::SwitchThePage()
{if (ui.stackedWidget->currentWidget() == page01){ui.stackedWidget->setCurrentWidget(page02);}else{ui.stackedWidget->setCurrentWidget(page01);}
}

3、PageItem_01对应代码

  • 头文件PageItem_01.h
#pragma once
#include "ui_PageItem_01.h"
#include <QWidget>class PageItem_01 : public QWidget
{Q_OBJECTpublic:PageItem_01(QWidget *parent=nullptr);~PageItem_01();private:Ui::PageItem_01        ui_01;
};
  • 主程序PageItem_01.cpp
#include "PageItem_01.h"
#include <QLabel>PageItem_01::PageItem_01(QWidget *parent): QWidget(parent)
{ui_01.setupUi(this);QLabel* label01 = new QLabel(this);label01->setText("This is the page first!");label01->setGeometry(200, 400, 400, 50);
}PageItem_01::~PageItem_01()
{
}

4、PageItem_02对应代码

/**** 头文件 PageItem_02.h *******/
#pragma once
#include "ui_PageItem_02.h"
#include <QWidget>class PageItem_02 : public QWidget
{Q_OBJECTpublic:PageItem_02(QWidget *parent=nullptr);~PageItem_02();private:Ui::PageItem_02         ui_02;
};
/**** 主程序 PageItem_02.cpp *******/
#include "PageItem_02.h"
#include <QLabel>PageItem_02::PageItem_02(QWidget *parent) : QWidget(parent)
{ui_02.setupUi(this);QLabel *label02 = new QLabel(this);label02->setText("This is the second page!");label02->setGeometry(100, this->height() - 100, 400, 50);
}PageItem_02::~PageItem_02()
{
}

运行结果如下:通过点击按钮来实现切换不同界面
在这里插入图片描述


http://chatgpt.dhexx.cn/article/u9qG7pxs.shtml

相关文章

测试会遇到的控件

我们测试一个软件&#xff0c;不管是C/S系统还是B/S系统&#xff0c;都会遇到各种各样的控件。控件是构成应用程序交互界面的基本元素&#xff0c;知己知彼&#xff0c;百战不殆&#xff0c;测试它们就要首先了解它们的特性。这里&#xff0c;我对常见的控件做一个汇总。希望大…

11. Windows应用程序常用控件

Windows应用程序常用控件 1 控件概述1.1 控件的分类及作用1.2 控件的命名规范1.2 控件的相关操作2.1 添加控件2.2 对齐控件2.3 锁定控件2.4 删除控件 3 文本类控件3.1 标签控件&#xff08;Label控件&#xff09;3.2 按钮控件&#xff08;button控件&#xff09;3.3 文本框控件…

第五章 Windows基础控件

一、 控件&#xff08;类&#xff09; 1&#xff0c;常用的控件分类及作用&#xff1a; 2&#xff0c;控件的基本操作&#xff1a; 1&#xff09;添加、删除控件&#xff1b; 2&#xff09;对齐控件。 注意&#xff1a;选择的第一个控件是主控键&#xff0c;其他的控件都与其对…

(3)Android常见界面控件

文章目录 3.1 简单控件的使用3.1.1 TextView控件3.1.2 EditText控件3.1.3 Button控件方法一&#xff1a;布局文件中指定点击事件(不常用)方法二&#xff1a;使用内部匿名类实现点击事件方法三&#xff1a;使用Activity实现OnClickListener接口全部实现代码举例 3.1.4 ImageView…

dreamweaver2020中文版

教程&#xff1a; 1、解压下载获得Dreamweaver 2020中文特别版&#xff0c;双击运行它。 2、由于其默认安装路劲为C盘系统盘&#xff0c;因此这里小编选择自定义。 3、选择想要安装的组件。 4、等待安装完成。 5、当向导安装结束后&#xff0c;点击完成。 6、最后双击桌面快捷…

Dreamweaver(Dw)2021软件下载及安装教程并创建一个网页

1.在微信搜索公众号软件星君&#xff08;如图&#xff09; 2. 2.点开链接找到里面的下载链接复制&#xff08;要求windows10&#xff09; 2、系统必须是Windows 10 64bit 3、保证电脑中有任意一款解压软件 安装步骤 1.找到下载好的安装包&#xff0c;并双击打开【Dw 2021 安装…

Dreamweaver 安装破解

Dreamweaver CS6 Mac破解版 发表于 2013 年 2 月 28 日 介于之前小子分享的Mac版的Adobe的PS CS6和Illustrator CS6&#xff0c;有用户要求小子分享下Dreamweaver&#xff0c;小子当然乐意效劳。 Dreamweaver CS6 是世界顶级软件厂商Adobe推出的一套拥有可视化编辑界面&#x…

Dreamweaver2021下载安装

下载路径见如下百度云盘 链接&#xff1a;https://pan.baidu.com/s/1mB6S0xw3KWxPnbOxfQNu7Q 提取码&#xff1a;k1pg 安装 我是从一个公众号学到的&#xff0c;里边有挺多常见工具软件以及详细安装方法。

coreldraw2021全名和序列号 cdr2021安装下载图文教程

CorelDRAW2021一套完整的专业图形设计应用程序开始正确的设计之旅&#xff0c;包括矢量插图、布局、照片编辑等 - 专为您选择的平台而设计。使用 CorelDRAW随时随地在 Windows 或 Mac 上制作独特的插图、广告牌、徽标等。通过 CorelDRAW与客户和同事进行协作&#xff0c;收集一…

Dreamweaver 安装 激活

来源地址&#xff1a;http://jingyan.baidu.com/article/e75aca8575e076142fdac65d.html 怎么安装和激活Dreamweaver cs6详细教程 1 安装Dreamweaver cs6之前&#xff0c;大家要从官网下载Dreamweaver cs6软件&#xff0c;这里我就不介绍怎么下载了。下载后解压压缩包&#xff…

dw怎样用css设置背景图片,dreamweaver

dreamweaverCSS使用教程&#xff1a;定义CSS样式背景属性 背 景 属 性 【定义 CSS 样式背景属性】使用“CSS 样式定义”对话框的“背景”类别可以定义 CSS 样式的背景设置。可以对网页中的任何元素应用背景属性。例如&#xff0c;创建一个样式&#xff0c;将背景颜色或…

CorelDRAW2021标准版 序列号授权码

作为一个设计师没有CorelDRAW用的日子真的是难过&#xff0c;最好用的就是CorelDRAW 2021的增强中文版&#xff0c;拥有极强的插件&#xff0c;为作图方便了不少&#xff01;CorelDRAW作为世界一流的平面矢量绘图软件&#xff0c;被专业设计人员广泛使用&#xff0c;软件使用直…

Adobe Dreamweaver的使用教程

1.打开Adobe Dreamweaver软件 2.打开后的界面 3.新建一个站点&#xff0c;保存网页文件&#xff0c;图片&#xff0c;视频等 4.输入站点的名字和保存的路径 5.新建html文件 6.选择设计模式 7.制作你所需要的结果 8.保存网页&#xff0c;才能在浏览器中预览 9.保存网页&#xff…

Dreamweaver2019版安装教程

吐槽一下 学校机房软件跟新换代也太慢了 软件甚至还是使用CS4古董级 Edition 连H5都不能创建 软件Edition日新月异 百家争鸣的时代 不过自己也高不到哪去&#xff01;使用的Adobe Dreamweaver CS6 前面也发表了低Edition的安装教程 如需考虑低版本请点击传送门 抛弃的原因&a…

Adobe Dreamweaver(DW)安装教程(附安装包下载地址)

一、安装包获取 1.百度网盘获取 链接&#xff1a;https://pan.baidu.com/s/1PqFChWBwSaZ6hLmD8uNY1Q?_at_1645531154665 提取码&#xff1a;0007 提示&#xff1a;如果链接失效请在评论区留言 2.同时给大家分享一个作者自己获取资源的方式&#xff1a;关注公众号 ” 稻田…

Adobe Dreamweaver 2021下载安装教程

软件介绍 Adobe Dreamweaver 2021是专业的网站设计软件&#xff0c;使用可为处理各种Web文档提供灵活的环境。Dreamweaver 2021一款非常受欢迎的网页设计软件&#xff0c;是该系列的全新版本&#xff0c;可以帮助广大学生、程序员制作出精美的网页&#xff0c;在全新的Dreamwe…

Dreamweaver CS6破解教程[序列号+破解补丁]

Adobe Dreamweaver CS6中文简体版下载地址&#xff1a;Dreamweaver CS6中文简体版下载[带破解] 该教程将不断更新&#xff0c;最新版请猛击&#xff1a;http://www.itxueyuan.org/view/6317.html 破解之前的准备 1) 序列号 这里为大家生成了两个&#xff0c;可以通过软件验证&a…

coreldraw2021永久序列号和激活注册教程

CorelDRAW2021最新中文版又叫做CDR图形设计软件&#xff0c;这个软件的功能相信使用过的朋友都非常的了解&#xff0c;因为它是超级给力的平面设计软件&#xff0c;为您提供丰富的功能和工具&#xff0c;让大家能够进行专业的矢量图绘制&#xff0c;并进行相关的布局、图像处理…

SQL|数据插入|触发器

一次插入多条信息 SQL34 链接地址&#xff1a;https://www.nowcoder.com/practice/51c12cea6a97468da149c04b7ecf362e?tpId82&&tqId29802&rp1&ru/ta/sql&qru/ta/sql/question-ranking 题目描述&#xff1a; 题目已经先执行了如下语句: drop table if ex…

SQLServer触发器的创建和使用

触发器也是和之前写的数据库函数和存储过程类似&#xff0c; 可以看做是一种特殊的数据库函数&#xff0c;只不过由系统调用&#xff0c;我们也需要表明调用的实际和规则 触发器的主体&#xff08;也可以说是触发器的使用范围&#xff09; 表table视图view库database服务器se…