目录

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);