2016-11-16 6 views
1

私のフォームの1つにQ3DScatterインスタンスを挿入したいと思います。私は、グラフを構築し、それを表示することができる午前:Q3DScatterを既存のQDialogフォームに追加する

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

...do some graph stuff... 

container.show() 

これが正常にグラフを作成し、独自のウィンドウ/コンテナにそれを示しています。私はqt-creatorで設計された別のフォームの中に配置したいと考えています。 widgetをプレースホルダとしてフォーム(QDialog)に配置しましたが、Q3DScatterをウィジェットに移動できません。

私は一般的に widgetsに非常に新しいです

...私はマニュアルにQ3DScatter::Q3DScatter(const QSurfaceFormat *format = Q_NULLPTR, QWindow *parent = Q_NULLPTR)を参照してくださいが、私は私がそれを追加したいフォームがQDialogあるとして、それを添付するQWindowの親を持っていけない

ので、これが間違ったアプローチである場合は、私を修正してください。

答えて

1

コンテナをダイアログの子として追加します。ダイアログのサイズが変更されたときにサイズを変更する必要がある場合は、レイアウトを配置します。例:

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