将Q3DScatter添加到现有QDialog表单中

时间:2016-11-16 21:33:08

标签: c++ qt qt-creator qwidget

我想在我的一个表单上插入Q3DScatter个实例。我能够构建图形并显示它:

Q3DScatter *graph = new Q3DScatter();
QWidget *container = QWidget::createWindowContainer(graph);

...do some graph stuff...

container.show()

这成功创建了图形并将其显示在自己的窗口/容器中。我现在想把它放在qt-creator中设计的另一个表单中。我在表单(QDialog)上放置了一个空widget作为占位符,但无法将Q3DScatter移动到窗口小部件中。

我在文档中看到Q3DScatter::Q3DScatter(const QSurfaceFormat *format = Q_NULLPTR, QWindow *parent = Q_NULLPTR)但我没有QWindow父级将其附加到,因为我想将其添加到的形式是QDialog ......

我对widgets一般都很新,所以如果这是错误的方法,请纠正我。

1 个答案:

答案 0 :(得分:1)

将容器添加为对话框的子容器。如果需要在调整对话框大小时调整大小,请放入布局。例如:

MyDialog::MyDialog(Q3DScatter *scatter, QWidget *parent) : QDialog(parent)
{
    QHBoxLayout * const l = new QHBoxLayout(this);
    l->setMargin(0);
    l->addWidget(QWidget::createWindowContainer(scatter, this);
}