PyQt5——QTabWidget(多页面切换)

原贴:【精选】13. PyQt5实现多页面切换之QTabWidget_pyqt qtabwidget-CSDN博客

原文链接:https://blog.csdn.net/hubing_hust/article/details/127951915

一、简介

1.一个选项卡栏(QTabBar)和一个相应的页面区域,用于显示与每个选项卡相对应的页面。 与 QStackedLayout 布局原理相同,只有当前页面(即可见页面)是可见的,所有其他页面都不可见,用户可通过选择不同的选项卡来显示其对应的其他页面。

2.只需设计页面中内容就可以实现多页面切换,无需再使用QStackedLayout 布局把页面与选项卡相关联,也不需要使用类似 QVBoxLayout 的布局把选项卡和页面放置在一起

3.QTabWidget 类的大部分功能由 QTabBar(主要处理选项卡部分)和 QStackedWidget(主要处理组织页面的功能)提供。

二、步骤

整体思路,创建QTabWidget对象,创建页签QWidget并添加到QTabWidget中,然后在页签中添加布局及内容;最后将QTabWidget添加到整体页面布局中

        1.创建QTabWidget对象   

        tabs = QTabWidget()

        2.创建页签 ,并添加到tabs中

        tab1 = QWidget()

        tabs.addTab(tab1, '页签1')

        3.对页签进行设计,添加布局和内容等

        tab1.layout = QVBoxLayout()

        tab1.layout.addWidget(QLabel('这是页签1'))

        tab1.layout.addWidget(QLabel('页签1的显示'))

        tab1.setLayout(tab1.layout)

        4.将tabs添加到布局中

        layout.addWidget(tabs)

三、常用方法

方法描述
addTab()添加到Tab选项卡
insertTab()将选项卡插入到指定位置
removeTab()根据索引删除Tab选项卡
setCurrentIndex()设置当前可见的选项卡索引
setCurrentWidget()设置当前可见的界面
setTabBar()设置选项卡栏的控件
setTabPosition()

设置选项卡位置,

QTabWidget.North、QTabWidget.South、QTabWidget.West、QTabWidget.East

setTabText()定义Tab选项卡的显示值
currentIndex()获取当前选中页面的索引,0,1,2,...

四、常用信号

信号描述
currentChanged切换选项卡时触发该信号

未完待续。。。。。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中,可以通过以下步骤来实现页面切换: 1. 确定页面的组织结构:在PyQt5中,通常使用QStackedWidget控件来管理多个页面。每个页面对应一个QWidget控件,可以通过QStackedWidget的addWidget方法将它们添加到堆叠窗口中。 2. 创建主窗口:使用QMainWindow类创建一个主窗口,作为页面切换的容器。可以在主窗口中放置一个QStackedWidget作为页面的容器。 3. 添加页面:使用QStackedWidget的addWidget方法将每个页面添加到堆叠窗口中。可以使用QWidget或其子类来创建页面,根据需要进行自定义布局。 4. 切换页面:使用QStackedWidget的setCurrentWidget方法,可以根据需要切换显示的页面。该方法接受一个QWidget类型的参数,表示要显示的页面。 下面是一个示例代码,用于演示如何在PyQt5切换页面: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QStackedWidget import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() self.stacked_widget = QStackedWidget(self) self.setCentralWidget(self.stacked_widget) self.page1 = Page1() self.page2 = Page2() self.stacked_widget.addWidget(self.page1) self.stacked_widget.addWidget(self.page2) self.page1.button.clicked.connect(self.switch_to_page2) self.page2.button.clicked.connect(self.switch_to_page1) def switch_to_page1(self): self.stacked_widget.setCurrentWidget(self.page1) def switch_to_page2(self): self.stacked_widget.setCurrentWidget(self.page2) class Page1(QWidget): def __init__(self): super().__init__() layout = QVBoxLayout() self.button = QPushButton("Switch to Page 2") layout.addWidget(self.button) self.setLayout(layout) class Page2(QWidget): def __init__(self): super().__init__() layout = QVBoxLayout() self.button = QPushButton("Switch to Page 1") layout.addWidget(self.button) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.setWindowTitle("Page Switching Example") main_window.show() sys.exit(app.exec_()) ``` 在示例中,我们创建了一个主窗口,其中包含一个QStackedWidget作为页面的容器。我们创建了两个页面(Page1和Page2),并将它们添加到堆叠窗口中。每个页面都包含一个按钮,点击按钮可以切换到另一个页面。在MainWindow类中,我们定义了两个槽函数switch_to_page1和switch_to_page2,用于切换到相应的页面。 希望以上回答能帮到你,如有任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值