QMainWindow初始化实例时会给实例默认的layout吗
时间: 2023-02-08 12:44:15 浏览: 59
QMainWindow是一个顶级窗口, 它本身不会给实例默认的layout。但是它有一个centralWidget属性,默认是空的,你可以在这里添加布局或者其他的组件。
如果你在QMainWindow上使用了某种布局(如QVBoxLayout), 你可以在centralWidget上添加组件,这样就可以通过布局管理这些组件的位置和大小了。
举个例子:
```
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QLabel
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = QMainWindow()
main_window.setWindowTitle("QMainWindow Example")
main_window.resize(300, 200)
central_widget = main_window.centralWidget()
layout = QVBoxLayout(central_widget)
layout.addWidget(QLabel("This is a test label"))
main_window.setCentralWidget(central_widget)
main_window.show()
sys.exit(app.exec_())
```
这个例子中,我们在QMainWindow中添加了一个 QVBoxLayout 布局,并在这个布局上添加了一个 QLabel组件。这样,组件就会被布局管理,并且显示在主窗口上了。