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,结果如下图

四、结语

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

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

获取源码:关注公众号,回复pyqt5即可

一叶孤沙出品:一沙一世界,一叶一菩提

原文地址:https://blog.51cto.com/14616151/2468810

时间: 2024-10-10 03:04:53

pyqt5快速上手基础篇6-QStackedWidget实现导航布局的相关文章

PyQt5快速上手基础篇1-开发环境搭建

前言 最近收到公司的一个基于PyQt的项目任务,由于UI界面比较复杂,最终选择了PyQt,本文我将带领大家学习Pyqt的环境搭建. 一.基础知识 1.PyQt简介 众所周知,Qt库是最强大的GUI库之一,不过他使用C++来开发的,作为一名Python爱好者,PyQt将是开发桌面应用程序一个极好的选择,笔者之前文章有介绍tkinter,那是Python内置的工具,比较轻量便捷,不过比较痛苦的是需要自己写代码设计UI,PyQt的一个很大的好处就在于可以使用Qt Designer设计UI界面,对于复杂

PyQt5快速上手基础篇2-按钮控制LCD屏显示

前言 上一节我们完成了PyQt5开发环境搭建,本节开始我们正式进入PyQt5的世界,首先我给大家介绍下QT的信号与槽,然后利用这一特点完成点击按钮触发LCD屏显示功能. 一.基础知识 1. PyQt5信号与槽简介 信号与槽是QT中的核心机制,也是PyQt5中对象直接进行通信的机制,当一个信号释放的时候,连接的槽函数会自动执行,比如点击/释放按钮都可以触发槽函数. 信号与槽特点如下: (1) 一个信号可以连接多个槽函数(2) 一个槽可以监听多个信号(3) 一个信号可以连接另一个信号(4) 信号与槽

PyQt5快速上手基础篇4-将lineEdit输入框数据同步显示再label和LCD屏上面

前言 本节我们将介绍lineEdit的使用方法,同时将输入框输入的数据同步显示再label和LCD屏幕上面. 一.基础知识 1. lineEdit简介 lineEdit是文本框,可以输入和显示文本信息,同时可以设置显示格式和文本框属性,其主要函数说明如下 常用信号如下 二.实例 1. QT Designer设计UI 打开designer.exe,使用默认的Main Window创建,直接点击Create按钮即可 设计UI图如下,并保存为edit.ui 2 将edit.ui转换为ui_edit.p

给深度学习入门者的Python快速教程 - 基础篇

实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明确.Python作者是荷兰人Guido van Rossum,1

随手学和记——PHP快速上手基础

PHP是一门解释性脚本语言. 你可以在PHP文件中写HTML.CSS.JavaScript和PHP,形成一个供浏览器解释渲染的页面.你也可以用PHP作服务端语言进行逻辑处理,和连接数据库. 1.使用PHP<?php    #这里是php代码   echo "hello world";?> 2.php中函数.类.关键字大小写不敏感:所有变量都大小写敏感. 3.变量都$开头,名称以字母或下划线开头.不需要声明,首次赋值时被创建.若类型. 4.作用域   local:函数内声明 

SQL快速入门基础篇

SQL SELECT 语句   如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句: SELECT LastName,FirstName FROM Persons "Persons" 表: Id LastName FirstName Address City 1 Adams John Oxford Street London

EF Core 快速上手——EF Core 入门

EF Core 快速上手--EF Core 介绍 本章导航 从本书你能学到什么 对EF6.x 程序员的一些话 EF Core 概述 1.3.1 ORM框架的缺点 第一个EF Core应用 ??本文是对<Entity framework in action>部分章节的翻译,某些场景也会附上笔者实践的Demo.尽管很认真的斟酌,但是水平有限,还请各位批评和斧正. ??Entity Framework Core, 或者 EF Core,是一个方便软件工程师访问数据库的库.有很多方法来构建这样的一个库

Java快速教程--vamei 学习笔记(基础篇)

链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html java快速教程第1课 从HelloWorld到面向对象 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html java快速教程第2课 方法与数据成员 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/25/2964430.html java快

Python学习基础篇第一篇——快速入门(适合初学者)

一.Python学习基础篇第一篇--(快速入门) 建议从Python2.7开始学习,Python2.7可以支持扩展大量的第三方类库,是目前比较成熟的版本 编写代码的软件推荐将python自带的IDLE和PyCharm集成IDE结合起来使用 1.1 Python命令行 Python命令行将以 >>> 开始,比如 >>>print 'Hello World!' 对于验证简单的命令可以在python自带的IDLE中完成  1.2 在Python自带的IDLE写一段小程序 在所