2

I've created a QMainWindow class. I coded a QGridLayout for the main layout, but whenever I add setLayout(grid); this error comes up:

QWidget::setLayout: Attempting to set QLayout "" on MainWindow "", which already has a layout

As far as I know, I haven't added any sort of layout in my code before.

I'm using Qt Creator and using Linux (ubuntu 12.10).

2 Answers2

6

What you can do is create a QWidget set it as the central widget and give this one a layout. QMainWindow has its own layout already to place statusbar and mainmenu thus you can't set another one directly.

dowhilefor
  • 10,971
  • 3
  • 28
  • 45
4

QMainWindow comes with its own layout, you can't set that directly.

You probably should be setting your layout on the central widget, or possibly not using a QMainWindow at all if you don't want its layout/features.

Mat
  • 202,337
  • 40
  • 393
  • 406