pyqt5 制作界面切换
时间: 2023-07-21 19:45:22 浏览: 131
基于Python和PyQt5实现同一窗口下多界面切换
使用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_()
```
以上两种方式都可以实现界面切换,具体使用哪种方式取决于你的需求。
阅读全文