一个界面调用另一个界面文件 用Python qt
时间: 2023-09-24 22:06:20 浏览: 87
在Python Qt中,可以使用QStackedWidget控件来实现在一个界面中切换到另一个界面。
以下是一个示例代码,演示如何在主窗口中嵌套两个子窗口,并通过按钮在两个子窗口之间切换:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QStackedWidget, QPushButton, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Main Window")
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
self.create_widgets()
def create_widgets(self):
# Create sub-widgets
self.widget1 = QWidget()
self.widget2 = QWidget()
# Add widgets to stacked widget
self.stacked_widget.addWidget(self.widget1)
self.stacked_widget.addWidget(self.widget2)
# Create buttons to switch between widgets
self.button1 = QPushButton("Switch to Widget 1")
self.button2 = QPushButton("Switch to Widget 2")
self.button1.clicked.connect(lambda: self.stacked_widget.setCurrentIndex(0))
self.button2.clicked.connect(lambda: self.stacked_widget.setCurrentIndex(1))
# Add buttons to layouts
layout1 = QVBoxLayout()
layout1.addWidget(self.button2)
self.widget1.setLayout(layout1)
layout2 = QVBoxLayout()
layout2.addWidget(self.button1)
self.widget2.setLayout(layout2)
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个例子中,我们创建了一个QStackedWidget作为主窗口的中央部件,并在其中添加了两个子窗口。我们还在每个子窗口中添加了一个QPushButton,用于在两个子窗口之间切换。当按钮被点击时,我们使用setCurrentIndex()方法来切换到相应的子窗口。
阅读全文