我想将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
还是很陌生,所以如果这是错误的方法,请更正我。 最佳答案
将容器添加为对话框的子级。如果在调整对话框大小时需要调整大小,请放置布局。例:
MyDialog::MyDialog(Q3DScatter *scatter, QWidget *parent) : QDialog(parent)
{
QHBoxLayout * const l = new QHBoxLayout(this);
l->setMargin(0);
l->addWidget(QWidget::createWindowContainer(scatter, this);
}