如何以编程方式在QMainWindow中添加QGraphicsView?

时间:2010-12-10 14:41:48

标签: c++ qt

我想以编程方式(使用代码)在QMainWindow中添加一个QGraphicsView(它的一个名为Menu的子类)。

事实上我已经这样做但问题是嵌入式QGraphicsView没有显示。

这是我在QMainWindow :: init()

中使用的代码
menuView=new Menu(this);
menuView->show();

我已经创建了场景并在Menu类中插入了项目。

怎么了?

2 个答案:

答案 0 :(得分:2)

menuView=new Menu(this);
menuView->show();

QLayout* layout=new QVBoxLayout();
layout->addWidget(menuView);
this->setLayout(layout);

如果您没有使用布局,或

menuView=new Menu(this);
menuView->show();

QLayout* layout=this->layout();
layout->addWidget(menuView);
this->setLayout(layout);

如果您的表单已有布局。

答案 1 :(得分:2)

使用QMainWindow时,请使用setCentralWidget:

int main( int argc, char** argv ) {
    QApplication app( argc, argv );
    ...
    QMainWindow mw;
    Menu menu;
    mw.setCentralWidget( &menu );
    mw.show();
    return app.exec();
}