addWidget不起作用

时间:2014-09-11 16:01:58

标签: c++ qt widget add qgraphicsscene

我想通过单击按钮将QGraphicsScene添加到QGraphicsScene 不起作用。有谁知道我做错了什么?我像这样设置了ui->setupUi(this); mScene = new QGraphicsScene(this); mNodeView = new QNodeView(ui->tabWidget); ui->NodeGraphicsView->addWidget(mNodeView); mNodeView->setScene(mScene); mNodeView->show();

QGraphicsScene

将小部件添加到void MainWindow::on_actionTextNode_triggered() { QNodeWidget *_nodeWidget = new QNodeWidget(mNodeView); mScene->addWidget(_nodeWidget); mNodeView->show(); }

{{1}}

2 个答案:

答案 0 :(得分:1)

看起来您尝试将父级设置为_nodeWidget,尝试在没有父级的情况下执行此操作:

QNodeWidget *_nodeWidget = new QNodeWidget;

有用吗?

答案 1 :(得分:0)

将小部件添加到场景时,它会在位置(0,0)处添加为QProxyWidget。

如果您无法看到小部件,那么它可能不在视野中。首先,检查对addWidget的调用是否返回有效指针,如果是,则通过调用fitInWindow将视图集中在小部件上: -

QNodeWidget *_nodeWidget = new QNodeWidget(mNodeView);
QGraphicsProxyWidget* pProxy = mScene->addWidget(_nodeWidget);

mNodeView->fitInWindow(pProxy);

如果您没有获得指向代理窗口小部件的有效指针,那么QNodeWidget类就会出现问题。