pyqt5使用按钮实现窗口之间跳转
时间: 2023-09-14 18:10:31 浏览: 138
在 PyQt5 中,可以使用按钮来实现窗口之间的跳转。下面是一个简单的示例代码,演示了如何在点击按钮时切换窗口:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QStackedWidget, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.stacked_widget = QStackedWidget()
self.button1 = QPushButton("Go to Window 2")
self.button2 = QPushButton("Go back to Window 1")
self.init_ui()
def init_ui(self):
layout = QVBoxLayout()
layout.addWidget(self.button1)
layout.addWidget(self.button2)
layout.addWidget(self.stacked_widget)
self.setLayout(layout)
self.button1.clicked.connect(self.go_to_window2)
self.button2.clicked.connect(self.go_to_window1)
self.create_windows()
self.setWindowTitle("Window 1")
self.show()
def create_windows(self):
window1 = QWidget()
layout1 = QVBoxLayout()
layout1.addWidget(QPushButton("Button 1 in Window 1"))
window1.setLayout(layout1)
window2 = QWidget()
layout2 = QVBoxLayout()
layout2.addWidget(QPushButton("Button 1 in Window 2"))
window2.setLayout(layout2)
self.stacked_widget.addWidget(window1)
self.stacked_widget.addWidget(window2)
def go_to_window2(self):
self.stacked_widget.setCurrentIndex(1)
self.setWindowTitle("Window 2")
def go_to_window1(self):
self.stacked_widget.setCurrentIndex(0)
self.setWindowTitle("Window 1")
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了一个 `MainWindow` 类,继承自 `QWidget`。在窗口中,我们使用了 `QVBoxLayout` 来布局按钮和窗口部件。`QStackedWidget` 是一个可以切换显示多个窗口的部件,我们使用它来管理窗口之间的跳转。
在 `init_ui()` 方法中,我们初始化了界面,并连接了按钮的 `clicked` 信号到槽函数来处理点击事件。在 `create_windows()` 方法中,我们创建了两个窗口,并将它们添加到 `QStackedWidget` 中。
`go_to_window2()` 方法用于在点击按钮1时切换到窗口2,`go_to_window1()` 方法用于在点击按钮2时切换回窗口1。通过调用 `setCurrentIndex()` 方法来设置显示哪个窗口。
最后,在 `__main__` 中创建了一个 `QApplication` 对象,并创建了 `MainWindow` 对象,最后通过调用 `app.exec_()` 运行应用程序。
这样,当你点击 "Go to Window 2" 按钮时,窗口将切换到第二个窗口;当你点击 "Go back to Window 1" 按钮时,窗口将切换回第一个窗口。
阅读全文