pyqt5显示不同窗口
时间: 2023-09-08 18:13:31 浏览: 43
要在PyQt5中显示不同的窗口,可以使用QMainWindow作为主窗口,并创建其他窗口作为子窗口。以下是一个简单的示例,其中包含两个窗口:主窗口和子窗口。
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLabel, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Main Window")
self.setGeometry(100, 100, 300, 200)
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.label = QLabel(self.central_widget)
self.label.setText("This is the main window")
self.label.move(50, 50)
self.button = QPushButton(self.central_widget)
self.button.setText("Open Child Window")
self.button.move(50, 100)
self.button.clicked.connect(self.open_child_window)
def open_child_window(self):
self.child_window = ChildWindow(self)
self.child_window.show()
class ChildWindow(QWidget):
def __init__(self, parent):
super().__init__(parent)
self.setWindowTitle("Child Window")
self.setGeometry(200, 200, 300, 200)
self.label = QLabel(self)
self.label.setText("This is the child window")
self.label.move(50, 50)
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个QMainWindow作为主窗口,将一个QWidget设置为中心部件,并在其中添加了一个QLabel和一个QPushButton。当用户单击按钮时,将创建一个子窗口(ChildWindow)并显示出来。子窗口是一个QWidget,它包含一个QLabel。在子窗口中,我们将parent参数设置为主窗口,这样可以让子窗口成为主窗口的子窗口。