pyqt5 多界面切换 QTabWidget

pyqt5 多界面切换 QTabWidget

<pyqt5 快速开发与实战page272>


import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
          
class TabDemo(QTabWidget):
	def __init__(self, parent=None):
		super(TabDemo, self).__init__(parent)   
		self.tab1 = QWidget()
		self.tab2 = QWidget()
		self.tab3 = QWidget()
		self.addTab(self.tab1,"Tab 1")
		self.addTab(self.tab2,"Tab 2")
		self.addTab(self.tab3,"Tab 3")
		self.tab1UI()
		self.tab2UI()
		self.tab3UI()
		self.setWindowTitle("Tab 例子")
		self.resize(400, 300)
		
	def tab1UI(self):
		layout = QFormLayout()
		layout.addRow("姓名",QLineEdit())
		layout.addRow("地址",QLineEdit())
		self.setTabText(0,"联系方式")
		self.tab1.setLayout(layout)
		
	def tab2UI(self):
		layout = QFormLayout()
		sex = QHBoxLayout()
		sex.addWidget(QRadioButton("男"))    
		sex.addWidget(QRadioButton("女"))
		layout.addRow(QLabel("性别"),sex)
		layout.addRow("生日",QLineEdit())
		self.setTabText(1,"个人详细信息")
		self.tab2.setLayout(layout)
		
	def tab3UI(self):
		layout=QHBoxLayout()
		layout.addWidget(QLabel("科目"))
		layout.addWidget(QCheckBox("物理"))
		layout.addWidget(QCheckBox("高数"))
		self.setTabText(2,"教育程度")
		self.tab3.setLayout(layout)

if __name__ == '__main__':
	app = QApplication(sys.argv)
	demo = TabDemo()
	demo.show()
	sys.exit(app.exec_())

运行效果:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用PyQt5可以很方便地实现界面切换,主要有两种方式: 1.使用QStackedWidget控件 QStackedWidget控件是一个容器,可以包含多个QWidget控件,并且只显示其中一个控件。我们可以通过setCurrentIndex()方法切换当前显示的控件,从而实现界面切换。 示例代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QStackedWidget, QWidget class Window(QMainWindow): def __init__(self): super().__init__() # 创建两个子窗口 self.window1 = QWidget() self.window2 = QWidget() # 创建一个按钮,用于切换界面 self.button = QPushButton('Switch', self.window1) self.button.move(100, 100) self.button.clicked.connect(self.switch) # 创建一个QStackedWidget控件,并将两个子窗口添加到其中 self.stacked_widget = QStackedWidget(self) self.stacked_widget.addWidget(self.window1) self.stacked_widget.addWidget(self.window2) self.setCentralWidget(self.stacked_widget) def switch(self): # 切换界面 if self.stacked_widget.currentIndex() == 0: self.stacked_widget.setCurrentIndex(1) else: self.stacked_widget.setCurrentIndex(0) if __name__ == '__main__': app = QApplication([]) window = Window() window.show() app.exec_() ``` 2.使用QTabWidget控件 QTabWidget控件是一个带有多个选项卡的窗口容器,每个选项卡可以包含一个QWidget控件。我们可以通过setCurrentIndex()方法切换当前显示的选项卡,从而实现界面切换。 示例代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QTabWidget, QWidget class Window(QMainWindow): def __init__(self): super().__init__() # 创建两个子窗口 self.window1 = QWidget() self.window2 = QWidget() # 创建一个按钮,用于切换界面 self.button = QPushButton('Switch', self.window1) self.button.move(100, 100) self.button.clicked.connect(self.switch) # 创建一个QTabWidget控件,并将两个子窗口添加到其中 self.tab_widget = QTabWidget(self) self.tab_widget.addTab(self.window1, 'Window 1') self.tab_widget.addTab(self.window2, 'Window 2') self.setCentralWidget(self.tab_widget) def switch(self): # 切换界面 if self.tab_widget.currentIndex() == 0: self.tab_widget.setCurrentIndex(1) else: self.tab_widget.setCurrentIndex(0) if __name__ == '__main__': app = QApplication([]) window = Window() window.show() app.exec_() ``` 以上两种方式都可以实现界面切换,具体使用哪种方式取决于你的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值