我想通过单击按钮将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}}
答案 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类就会出现问题。