首页 > 其他分享 >PyQT5之多页面切换

PyQT5之多页面切换

时间:2024-06-13 09:34:32浏览次数:20  
标签:widget layout QVBoxLayout page2 PyQT5 vbox 之多 my 页面

from PyQt5.QtWidgets import QApplication, QWidget, QStackedLayout, QVBoxLayout
from PyQt5.QtWidgets import QPushButton, QComboBox, QSizePolicy
import sys


if __name__ == '__main__':
  app = QApplication(sys.argv)

  my_widget = QWidget()
  my_widget_1 = QWidget(my_widget)
  my_widget_2 = QWidget()

  # 容器my_widget_1使用QVBoxLayout布局,布局中包含2个button
  my_page1_btn1 = QPushButton('A')
  my_page1_btn2 = QPushButton('B')

  # page1中将2个button加入QVBoxLayout布局
  my_page1_vbox_layout = QVBoxLayout()
  my_page1_vbox_layout.addWidget(my_page1_btn1)
  my_page1_vbox_layout.addWidget(my_page1_btn2)
  my_widget_1.setLayout(my_page1_vbox_layout)

  # 容器my_widget_2也使用QVBoxLayout布局,布局中包含2个button
  my_page2_btn1 = QPushButton('C')
  my_page2_btn2 = QPushButton('D')

  # page2中将2个button加入QVBoxLayout布局
  my_page2_vbox_layout = QVBoxLayout()
  my_page2_vbox_layout.addWidget(my_page2_btn1)
  my_page2_vbox_layout.addWidget(my_page2_btn2)
  my_widget_2.setLayout(my_page2_vbox_layout)

  # 将两个页面加入到QStackedLayout中
  my_stacked_layout = QStackedLayout()
  my_stacked_layout.addWidget(my_widget_1)
  my_stacked_layout.addWidget(my_widget_2)

  # 定义一个combobox用于选择分页
  my_combo_box = QComboBox()
  my_combo_box.addItem('页面1')
  my_combo_box.addItem('页面2')
  my_combo_box.setMinimumWidth(100)
  my_combo_box.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)

  # 顶层窗口上,使用QVBoxLayout布局,进行展示
  my_page_vbox_layout = QVBoxLayout()
  my_page_vbox_layout.addWidget(my_combo_box)
  my_page_vbox_layout.addLayout(my_stacked_layout)
  my_widget.setLayout(my_page_vbox_layout)

  # 关联信号和槽以实现多页面切换(关键步骤)
  my_combo_box.activated[int].connect(my_stacked_layout.setCurrentIndex)

  my_widget.show()

  sys.exit(app.exec_())


标签:widget,layout,QVBoxLayout,page2,PyQT5,vbox,之多,my,页面
From: https://www.cnblogs.com/jackchen28/p/18245217

相关文章

  • uni-app上下级页面数据双向通信
    前情最近在做小程序项目,选用是当前比较火的uniapp技术栈,经常会遇到页面间消息传递的需求。为什么要这么做?uniapp页面间数据通信方式有很多:通过url传参,状态管理库vuex/pinia,本地存储,事件通道eventChannel,EventBus等。这次的需求是在A面点击一个按钮跳转到B页面拾取一个数据选项......
  • python指南之多线程与多进程编程大全
    Python作为一种高级编程语言,提供了多种并发编程的方式,其中多线程与多进程是最常见的两种方式之一。在本文中,我们将探讨Python中多线程与多进程的概念、区别以及如何使用线程池与进程池来提高并发执行效率。多线程与多进程的概念多线程多线程是指在同一进程内,多个线程并发执......
  • linux内存管理(九)- 页面回收
    参考《深入理解linux内核架构》和这篇博客Linux中的内存回收[一]-知乎(zhihu.com)内核代码v6.8-rc2内存在计算机系统中经常是稀缺资源,当系统中内存不足甚至耗尽,为了让系统继续运行必须回收一部分内存。为了回收内存,我们必须首先知道系统中的内存都处于什么状态。内存中的页......
  • liunx下prometheus页面设置用户名密码登陆
    前言 前两天公司漏洞通报prometheus未设置鉴权,漏洞详情如下图所示。 操作前须知Prometheus于2.24版本(包括2.24)之后提供BasicAuth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheusapi的时候也需要加上用户密码1、安装依赖yum-yinstallepel-......
  • 【Python】成功解决ModuleNotFoundError: No module named ‘PyQt5‘
    【Python】成功解决ModuleNotFoundError:Nomodulenamed‘PyQt5’ 下滑即可查看博客内容......
  • 下载使用nginx发布html自定义页面
    在浏览器搜索nginx.org,然后点击download,接着点击 stableandmainline选择自己所使用系统对应的信息后点击(我用的是CentOS,所以需要点击RHELandderivatives)vim/etc/yum.repos.d/nginx.repo[nginx-stable]name=nginxstablerepobaseurl=http://nginx.org/packages/ce......
  • Python 调整PDF页面尺寸大小
    在处理PDF文件时,我们可能会遇到这样的情况:原始PDF文档不符合我们的阅读习惯,或者需要适配不同显示设备等。这时,我们就需要及时调整PDF文档中的页面尺寸,以满足不同应用场景的需求。利用Python语言的高效性和灵活性,再结合Spire.PDFforPython库的强大功能,我们可以通过Python代码轻......
  • 移动端适配和响应式页面中的常用单位
    在移动端适配和响应式页面中,一般采用以下几种单位:百分比(%):百分比单位是相对于父元素的大小计算的。它可以用于设置宽度、高度、字体大小等属性,使得元素能够随着父元素的大小自动调整。百分比单位在响应式布局中非常有用,特别是在设置容器的宽度时。视口单位(vw、vh、vmin、......
  • HTML静态网页成品作业(HTML+CSS)—— 环保主题介绍网页(5个页面)
    ......
  • PyQT5之QSS基础/子控件选择器
    fromPyQt5.QtWidgetsimport*importsysclassBasicQCSS(QWidget):def__init__(self):super().__init__()self.setWindowTitle("QSS样式/子控件选择器")btn1=QPushButton(self)btn1.setText("按钮1")b......