第15.34节 PyQt(Python+Qt)入门学习:containers容器类部件QStackedWidget堆叠窗口部件详解

QT QStackedWidget 控件 使用详解 本文详细的介绍了QStackedWidget控件的各种操作,例如:新建界面、页面切换、添加页面、addWidget、count、currentIndex 、currentWidget、indexOf、insertWidget、removeWidget、widget、setCurrentIndex 槽函数、setCurrentWidget 槽函数、currentChanged 信号、widgetRemoved 信号、 样式表等操作。 本系列QT全面详解文章目前共有十八篇,本系列文章较为详细的讲述了QT控件的基 阅读详情

一、概述

StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWidget。QStackedWidget类对应部件为放在堆栈中的多个窗口部件,这些放在堆栈中的窗口部件在界面上只能看到一个窗口。

二、属性

2.1、概述

在Designer中StackedWidget堆叠窗口部件非常简单,只有2个,如下:
在这里插入图片描述
除了这2个属性外,还有个未在Designer中设置的动态属性count。

2.2、currentIndex属性

currentIndex属性保存堆叠窗口部件的当前窗口的索引。如果没有当前窗口,则当前索引为-1。默认情况下,此属性值为-1,因为堆最初为空。在Designer中,部件设计拖拽到页面时,会初始化2个页面,此时currentIndex初始值为0。

可以通过currentIndex()和setCurrentIndex(int index)方法访问该属性,当当前页切换时,会发射currentChanged(int index)信号,参数为新的当前页索引。

2.3、currentPageName属性

StackedWidget堆叠窗口部件的currentPageName属性,在对应类QStackedWidget中并没有该同名属性,实际上该属性是StackedWidget中当前页面窗口对应部件的名字,通过部件的objectName属性访问。

2.4、count属性

count属性保存了堆叠窗口部件中的窗口数量,可以使用count()访问。

三、重要方法

3.1、增加页面窗口的方法

可以使用addWidget和insertWidget方法在堆叠窗口部件部件中增加一个页面窗口,调用方法如下:

  • int addWidget(QWidget widget)
  • int insertWidget(int index, QWidget widget)
说明:13971127980
  • widget:为新加的页面窗对象,任何QWidget及其派生类的实例都可以
  • index:堆叠窗的位置索引,从0计数,如果超出范围,则在最后面添加
  • 返回值:新增加堆叠窗的索引值
  • 如果堆叠窗口部件部件为空无窗口部件,新加入部件即成为当前页面窗,否则当前页面窗保持不变
3.2、取堆叠窗口部件中指定索引的页面窗口

可以使用widget方法从堆叠窗口部件中取指定索引的堆叠窗实例对象,调用语法如下:

-QWidget widget(int index)

注意:如果index超出范围则返回None。
3.3、取堆叠窗当前窗口

可以使用currentWidget方法获取当前页面窗口对象,调用语法如下:

  • QWidget currentWidget()
注意:如果没有当前窗口则返回None。
3.4 取堆叠窗在部件中的索引顺序

可以使用indexOf方法取页面窗口对象在堆叠窗部件中的索引,调用语法:

  • int indexOf(QWidget widget)
3.5、移除一个堆叠窗

可以使用removeWidget从堆叠窗部件中移除参数指定的对应页面窗口,调用语法如下:

  • removeWidget(QWidget widget)
注意:
  • 由于removeWidget的参数是QWidget 对象,使用起来不是很方便,可以通过widget结合索引方法获取部件再传递给removeWidget使用
  • remove只是移除了索引对应窗口,并没有删除窗口实例对象

四、相关信号

除了从父类继承的信号外,QStackedWidget堆叠窗口部件只有两个信号:

  • currentChanged(int index):当前窗口发生了切换时发射该信号,index为新的当前窗口索引
  • widgetRemoved(int index):当从堆叠窗口部件中移除一个窗口时发射此信号。

五、小结

QStackedWidget堆叠窗口部件创建后,可以使用addWidget()方法添加一个窗口到列表的末尾,也可以使用insertWidget()方法将窗口插入到给定的位置。可以使用removeWidget从堆叠窗部件中移除一个页面窗口。堆叠窗部件中的页面窗口数量使用count()方法获取。

屏幕上显示的窗口部件索引由currentIndex()给出,可以使用setCurrentIndex()进行更改。以类似的方式,可以使用currentWidget()获取当前显示的页面窗口部件,如果要更改当前页面窗口可以使用setCurrentWidget()方法进行更改。

每当堆叠窗口中的当前页面窗口更改或从堆叠窗口部件中移除页面窗口时,会分别发出currentChanged()和widgetRemoved()信号。

广告

老猿关于PyQt的付费专栏《使用PyQt开发图形界面Python应用》只需要9.9元,该部分与第十五章的内容基本对应,但同样内容在付费专栏上总体来说更详细、案例更多。本节内容对应付费专栏的《第二十八章、containers容器类部件QStackedWidget堆叠窗口部件详解》。如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

【Qt笔记】QStackedWidget控件详解 QStackedWidget是 Qt 框架中的一个非常有用的控件,它允许你堆叠多个窗口部件(widgets),但一次只显示一个。这种机制非常适合于实现向导、多视图应用程序、选项卡界面(虽然它没有内置的选项卡头)以及表单向导等场景 阅读详情

相关推荐

PyQt学习笔记:QStackedWidget容器类部件常用方法详解

PyQt学习笔记:QStackedWidget容器类部件常用方法详解在PyQt中,QStackedWidget是一种特殊的容器类部件,它可以在窗体中放置多个子部件,并且只显示其中的一个子部件。通过切换当前显示的子部件,可以使得不同的内容得到展示。在本篇文章中,我们将介绍QStackedWidget的常用方法及其使用。

持续更新 906

105.PyQt5_QStackedWidget_堆叠窗口控件

QTackedWidget是一个堆栈窗口控件,可以将一些控件堆叠在一起,但是同一时间只有一个控件可以显示 * QStackedWidget是一个构建在QStackedLayout类之上的便利布局控件 * QStackedWidget不提供用户切换页面的内在手段。这通常是通过QComboBox或QListWidget完成的

weixin_50296259的博客 1131

PyQt5 高级界面控件:QStackedWidget in Python

主窗口中包含一个 QStackedWidget 控件和两个按钮,用于在页面之间进行切换。当点击两个按钮时,可以通过修改当前页面的索引来实现页面的切换。在 PyQt5 的众多高级界面控件中,QStackedWidget 是一个非常实用的窗口容器控件,它可以方便地管理多个窗口之间的切换并显示当前活动窗口。下面是一个简单的例子,展示了如何使用 QStackedWidget 在不同的页面之间进行切换。QStackedWidget 是一个非常实用的 GUI 编程工具,可以实现很多有趣的界面效果。

. 806

PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件当前项类属性currentIndex、currentTabText、currentTabName、currentTabIcon介绍

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的当前项类属性为用于访问当前操作的选项卡,包括如下属性: 1. currentIndex当前选项的位置索引 如果没有选择当前项,currentIndex值为-1,可以通过方法currentIndex()和setCurrentIndex(int index)访问该属性。当前项...

老猿Python 7874

华为私有云HCS 8.1.1实战:从镜像制作到云主机发放全流程指南

本文详细解析了华为私有云HCS 8.1.1从镜像制作到云主机发放的全流程实战指南。内容涵盖制作标准化QCOW2镜像、配置云主机规格与主机组、规划外部网络,以及在运营面为租户初始化资源、配置审批流与产品目录。最后,通过用户视角演示了从创建VPC网络到申请、审批并最终绑定EIP访问云主机的完整操作步骤,为运维人员和架构师提供了一套清晰、可落地的HCS部署与管理实践方案。

weixin_29305313的博客 1128

从CentOS迁移到openEuler 24.03 LTS:手把手教你部署Java+MySQL+Redis+Nginx全栈环境

本文详细指导如何从CentOS迁移到openEuler 24.03 LTS,并部署Java+MySQL+Redis+Nginx全栈环境。涵盖系统配置、软件安装、性能优化及环境验证,助力企业级用户高效完成服务器迁移与部署。

weixin_26938645的博客 389

PyQt5使用stackedWidget实现页面切换

完整代码如下import sys以上便是本人的制作过程,如遇问题或者文章有错误可私信或者评论。

暮川ovo的博客 5495

C语言实验——各位数字之和排序

C语言实验——各位数字之和排序Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description给定n个正整数,根据各位数字之和从小到大进行排序。 Input输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面...

aiLMengi000的博客 1243

PyQt介绍——QStackedWidget堆栈组件的介绍使用

ControlWidget窗口中,创建QStackedWidget,分别添加两个组件,为Test1Widget和Test2Widget,两个组件都添加ViewOnButton,通过ViewOnButton切换两个组件。QStackedWidget是一个堆栈窗口控件,用于管理多个堆叠的子部件。它只显示当前选中的子部件,而隐藏其余的子部件。

钟灵毓秀的博客 986

别再让会议变‘回音壁’:手把手教你调优WebRTC的AEC3回声消除(附实战代码)

本文深入解析WebRTC的AEC3回声消除技术,提供从参数调优到声学环境适配的实战指南。通过诊断回声特征、解剖核心参数(如filter.length_blocks和delay_estimate_smoothing)以及应对特殊场景(如密闭空间与开放办公区),帮助开发者有效解决视频会议中的回声问题,提升语音通信质量。附有实战代码和调试工具,适合需要优化实时通信体验的开发者。

weixin_29220405的博客 172

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

【PyQt学习篇 · ⑬】:QStackedWidget的使用

在这个例子中,创建了一个QMainWindow,并设置QStackedWidget作为其中央部件。然后,创建两个QWidget,并使用QVBoxLayout将一个标签添加到每个QWidget中。QStackedWidget是PyQt中的一个容器部件,用于管理多个堆叠的子部件。它只显示当前选中的子部件,而隐藏其余的子部件。通过点击按钮,我们可以在主窗口中显示不同的部件。只有当前选中的部件才会显示,其余部件将会被隐藏。随后,创建两个按钮,分别用于显示Widget 1和Widget 2。

Oh_Python的博客 1238

FC7300 Clock介绍

FC7300的时钟架构包括一个高级时钟图和内部时钟需求。它有5个CMU,使用SIRC监控FIRC/SOSC/FOSC,并使用FIRC监控SIRC。此外,CMU4还使用FOSC监Slow Clock。

舊梦的博客 327

[QT_039]Qt学习之堆栈控件和标签页控件(StackedWidget、TabWidget)

Qt学习之堆栈控件和标签页控件(StackedWidget、TabWidget)

kongcheng253的博客 1万+

AI驱动芯片设计的端到端验证:AI应用架构师的全流程指南

想象你要建造一座1000层的超级摩天大楼,每个房间都有独特的功能,管道、电路、电梯系统交织如迷宫。传统的检查方式是派1000个工程师逐层逐房手动检查,耗时十年且仍可能遗漏火灾隐患。这就是今天芯片设计面临的困境:7nm芯片含百亿晶体管,相当于百亿个"房间",传统验证方法(人工编写测试用例、随机仿真)已难以应对。本文的目的,是为AI应用架构师提供一份"AI驱动芯片验证导航图",范围涵盖从验证需求分析到芯片签核的全流程,包括AI模型如何融入传统验证工具链、数据如何驱动验证效率提升、以及端到端闭环系统的构建方法。

2501_92132293的博客 1241

C#实现图片裁剪 (附完整源码)

C#实现图片裁剪 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 508

Python 小白从零开始 PyQt5 项目实战(6)窗口切换的堆叠布局

Python 小白从零开始 PyQt5 项目实战(6)切换窗口的堆叠布局 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。 软件项目中经常需要多种不同的图形界面,以适应不同的任务场景。堆叠窗口控通过编程来控制显示的图形界面,相对比较复杂,但也更加通用和灵活。 本文以堆叠窗口控件为例,详细介绍堆叠布局的界面设计和程序实现过程,通过案例带小白创建一个典型的堆叠布局多窗口切换程序。

youcans的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

第八节 PyQt5之QToolButton对象(快速访问按钮)

简介 提供了一个快速访问按钮 通常是在工具栏内部使用 工具按钮通常不显示文本标签,而是显示图标 继承自QAbstractButton 创建 QToolButton(parent: QWidget = None) # 代码示例 window = QWidget() window.resize(500, 200) # 创建按钮 btn = QToolButton(window) btn.mov...

weixin_43496130的博客 1976

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PyQT学习之Stacked Widget控件

1. 打开PyCharm中:Tools->Externel Tools->Qt_Designer 2. QtDesigner中:文件->新建->Widget 在左侧栏中选择拖动“Push Button”和“Stacked Widget”控件到右侧 为了验证两个页面的切换过程,在右侧对象查看器中选中page,然后拖动Label到UI中 然后将此UI保存名为“test.ui” 3. 将test.ui生成test.py文件 选中test.ui,选择Tools-&gt

m0_37633929的博客 4715

Qt5之QStackedWidget

**// QStackedWidget // currentIndex() // 返回当前窗口索引 // setCurrentIndex() //设置当前窗口索引 // signal currentChanged() // 当前窗口改变 // addWidget() //增加窗口 // removeWidget() //删除窗口 // indexOf() //返回窗口的索引号 // c

RGBMarco的博客 1065

Qt之QStackedWidget

官网链接:QStackedWidget详细描述:QStackedWidget类提供了一个部件(widget)的栈,且在某一时刻仅有一个部件是可见的。QStackedWidget可以被用来创建一个用户界面,该用户界面和QTabWidget提供的相似。它是在QStackedLayout类之上构建的一个便利布局部件,像QStackedLayout一样,可以构建QStackedWidget并填充许多子部件(

mlyjqx的博客 1127

Qt QListwidget与QStackedWidget或QTabWidget实现多界面切换的效果

QStackedWidget是Qt中的一个容器控件,它可以用来管理和切换多个子控件,配合其他控件可以达到切换不同界面的效果

Ray 2572

qtdesigner使用树形控件实现堆叠布局

qtdesigner使用树形控件实现堆叠布局

fresh_nam的博客 3831

Qt之QStackedWidget多界面切换

简述 QStackedWidget继承自QFrame。 QStackedWidget类提供了多页面切换的布局,一次只能看到一个界面。 QStackedWidget可用于创建类似于QTabWidget提供的用户界面。 简述 使用 效果 源码 接口 信号 共有槽函数 总结 使用 一个QStackedWidget可以用一些子页面进行填充。 效果 源码 ...

沐 白 5675

QStackedWidget类详细介绍

是 PyQt5 中用于在同一区域 ​的容器控件,适用于向导界面、选项卡内容切换、动态视图管理等场景。

wanglaqqqq的博客 966

【Python开发技术之PyQt5精品教学】第25课--PyQt5 QStackedWidget小部件

功能和类似,它也有助于高效利用窗口的客户区域。提供了一个窗口堆栈,每次只能查看一个窗口。它是建立在之上的一个有用的布局。

xzs51job的专栏 528
上一篇: 第二十八章、containers容器类部件QStackedWidget堆叠窗口部件详解
下一篇: PyQt开发案例:结合QDial实现的QStackedWidget堆叠窗口程序例子及完整代码
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值