在PyQt中,可以使用QMainWindow類作為主窗口,可以使用QWidget類作為子窗口。
以下是一個創建主窗口和子窗口的示例代碼:
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton
class ChildWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Child Window')
self.setGeometry(100, 100, 300, 200)
layout = QVBoxLayout()
button = QPushButton('Close')
button.clicked.connect(self.close)
layout.addWidget(button)
self.setLayout(layout)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('Main Window')
self.setGeometry(100, 100, 500, 400)
self.child_window = ChildWindow()
self.setCentralWidget(self.child_window)
if __name__ == '__main__':
app = QApplication([])
main_window = MainWindow()
main_window.show()
app.exec()
在上述代碼中,我們創建了一個ChildWindow類作為子窗口,其繼承自QWidget類。在ChildWindow的構造函數中,我們設置了子窗口的標題、大小和布局,并添加了一個按鈕。在按鈕的clicked信號與self.close槽函數之間建立了連接。
然后,我們創建了一個MainWindow類作為主窗口,其繼承自QMainWindow類。在MainWindow的構造函數中,我們設置了主窗口的標題、大小,并創建了一個ChildWindow對象作為主窗口的中央窗口,通過self.setCentralWidget方法將其設置為中央窗口。
最后,我們創建了一個QApplication對象,實例化MainWindow對象,并通過show方法顯示主窗口,最后通過app.exec方法進入主事件循環。