PyQt5快速上手基础篇6-QStackedWidget实现导航布局

前言

本节我们使用QT Designer.exe设计stackedWidget实现导航功能。

一、基础知识

1. QStackedWidget简介

QStackedWidget,叫做堆载窗口控件,可以添加多个page,每个page显示不同的内容,页面中使用这个功能,可以再共同一区域在不同条件下显示不同内容,方便开发使用,关于API本文不做过多介绍,我们使用QT设计师来设计StackedWdiget,只需要了解调用QStackedWidget.setCurrentindex(index)可以显示不同的页面即可。

二、实例

1. QT Designer设计UI

打开designer.exe,使用默认的Main Window创建,直接点击Create按钮即可
在这里插入图片描述

设计UI图如下,并保存为stackWidget.ui

设置页面1
在这里插入图片描述

设置页面2,点击Object Inspector中page2页面,再设计框中增加一个label
在这里插入图片描述

切换到page2页面,点解insert Page/After Current Page
在这里插入图片描述
在这里插入图片描述

2 将stack.ui转换为ui_stack.py

进入ui_stack.py目录,输入pyuic5 -o ui_stack.py stack.ui

3 编写python程序

# encoding=utf-8
import sys
import PyQt5.QtWidgets as qw
import ui_stack
class myForm(qw.QWidget, ui_stack.Ui_Form):
 def __init__(self):
 super().__init__()
 self.setupUi(self)
 self.pushButton1.clicked.connect(self.btn1_fun)
 self.pushButton2.clicked.connect(self.btn2_fun)
 self.pushButton3.clicked.connect(self.btn3_fun)
 def btn1_fun(self):
 self.stackedWidget.setCurrentIndex(0)
 def btn2_fun(self):
 self.stackedWidget.setCurrentIndex(1)
 def btn3_fun(self):
 self.stackedWidget.setCurrentIndex(2)
if __name__ == '__main__':
    app = qw.QApplication(sys.argv)
    w = myForm()
    w.show()
    sys.exit(app.exec_())

首先再QT设计师中设计页面,左边是导航栏,再listWidget中放置三个按钮,分别是测试项1,测试项2,测试项3。右边是stackedWidget,在其中设计3个页面,放置三个label,内容分别是“我是测试项一”,“我是测试项二”, “我是测试项三”,然后导出成ui_stack.py文件,编写代码为listWidget中的按钮添加槽函数,在槽函数中切换到对应的页面,使用stackedWidget.setCurrentindex(index)即可。

三、运行

进入文件目录,输入python3 run.py,即可弹出上述用QT Designer设计出来的页面,stckedWidget中默认显示第一个页面。
在这里插入图片描述

点击按钮测试项2,结果如下图
在这里插入图片描述

点击按钮测试项3,结果如下图
在这里插入图片描述

四、结语

1. 获取源码

如您在使用过程中有任何问题,请加QQ群进一步交流。

QQ交流群:906015840 (备注:物联网项目交流)

项目实战:PyQt5快速开发串口工具

扫码关注公众号:物联网客栈,回复pyqt5即可获取本节源码。
在这里插入图片描述
一叶孤沙出品:一沙一世界,一叶一菩提

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

物联网客栈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值