#include static QGraphicsProxyWidget* wrapWidgetWithProxy( QWidget* widget ) { QGraphicsProxyWidget* editProxy = new QGraphicsProxyWidget; editProxy->setWidget( widget ); return editProxy; } int main(int argc, char **argv) { QApplication app(argc, argv); QGraphicsView centerWidget; QGraphicsScene* scene1 = new QGraphicsScene(); scene1->addSimpleText( "1" ); scene1->setBackgroundBrush( QBrush(QColor(255, 80, 80, 255)) ); QGraphicsScene* scene2 = new QGraphicsScene(); scene2->addSimpleText( "2" ); scene2->setBackgroundBrush( QBrush(QColor(70, 70, 70, 255)) ); /*comment away either setMinimumSize or setSizePolicy and it works*/ QGraphicsView* view1 = new QGraphicsView(); view1->setScene( scene1 ); view1->setMinimumSize( QSize(100,100) ); view1->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); QGraphicsView* view2 = new QGraphicsView(); view2->setScene( scene2 ); view2->setMinimumSize( QSize(100,100) ); view2->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); QTabBar* tabs = new QTabBar(); tabs->addTab ( "Input" ); tabs->addTab ( "Arrange" ); tabs->addTab ( "Launch" ); tabs->setCurrentIndex(0); tabs->setDrawBase( false ); tabs->setTabsClosable(false); QGraphicsGridLayout* layout = new QGraphicsGridLayout(); layout->addItem( wrapWidgetWithProxy( tabs ), 0, 0, 1, 1 ); layout->addItem( wrapWidgetWithProxy( view1 ), 1, 0, 1, 1 ); layout->addItem( wrapWidgetWithProxy( view2 ), 1, 1, 1, 1 ); layout->setSpacing( 1 ); QGraphicsWidget* enclosingWidget = new QGraphicsWidget(); QGraphicsScene* enclosingScene = new QGraphicsScene(); enclosingWidget->setLayout( layout ); enclosingScene->addItem( enclosingWidget ); centerWidget.setScene( enclosingScene ); centerWidget.resize(300,300); centerWidget.show(); return app.exec(); }