pyqt5实现窗口跳转
时间: 2023-07-06 11:42:08 浏览: 214
在 PyQt5 中,可以使用 QStackedWidget 控件实现窗口跳转。具体步骤如下:
1. 创建多个窗口(QWidget),并设置它们的布局和控件。
2. 创建一个 QStackedWidget 控件,并将所有窗口添加到该控件中,使用 addWidget() 方法添加。
3. 在需要切换窗口的地方,使用 setCurrentIndex() 方法切换显示的窗口。例如,可以在按钮的 clicked 信号中调用该方法。
以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QStackedWidget, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 300, 200)
# 创建多个窗口
self.window1 = QWidget()
self.window2 = QWidget()
self.window3 = QWidget()
# 在窗口中添加控件
self.button1 = QPushButton('Go to window 2', self.window1)
self.button1.move(50, 50)
self.button1.clicked.connect(self.showWindow2)
self.button2 = QPushButton('Go to window 3', self.window2)
self.button2.move(50, 50)
self.button2.clicked.connect(self.showWindow3)
self.button3 = QPushButton('Go to window 1', self.window3)
self.button3.move(50, 50)
self.button3.clicked.connect(self.showWindow1)
# 创建一个 QStackedWidget 控件
self.stack = QStackedWidget(self)
self.stack.addWidget(self.window1)
self.stack.addWidget(self.window2)
self.stack.addWidget(self.window3)
# 设置布局
layout = QVBoxLayout(self)
layout.addWidget(self.stack)
def showWindow1(self):
self.stack.setCurrentIndex(0)
def showWindow2(self):
self.stack.setCurrentIndex(1)
def showWindow3(self):
self.stack.setCurrentIndex(2)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
该代码实现了在三个窗口之间切换的功能。当点击按钮时,会切换到对应的窗口。
阅读全文