Visualblocks
Visualblocks

Reputation: 45

Why can't I add a QGridLayout to a QMainWindow?

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

Upvotes: 2

Views: 1922

Answers (2)

dowhilefor
dowhilefor

Reputation: 11051

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.

Upvotes: 6

Mat
Mat

Reputation: 206699

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.

Upvotes: 4

Related Questions