Qt Error QWidget::setLayout: Attempting to set QLayout
目录
报错
QWidget::setLayout: Attempting to set QLayout "" on CalculatorMachine “”, which already has a layout
原因:
- 基于主窗口的程序,默认已经有了自己的布局管理器。
- QMainWindow的中心控件是一个QWidget,可以通过setCentralWidget设置。
- 若想在QMainWindow中添加 layout,需要通过将该Layout添加到一个QWidget对象中,然后将该布局设置为该空间的布局,最后设置该控件为QMainWindow的中心控件,代码如下:
widget = QWidget(self);
widget.setLayout(gridLayout);
self.setCentralWidget(widget);