0

ここにあるものと非常によく似た、QGLWidget からの派生クラスを含む外部ライブラリを取得しました。そのライブラリにはクラスがあります:

class PictureGLWidget : public QGLWidget { //.. }

これにより、Qt のネイティブ QGLWidget が拡張され、パーソナライズされます。しかし、それは私が書いたものではなく、*.dll 経由で入手したものです。そのため、コード内でそのウィジェットを次のようなレイアウトに手動でバインドします。

QGridLayout* layout = new QGridLayout;
layout->addWidget(myPictureGLWidget, 0, 1);
ui->verticalLayout_5->addLayout(layout);

ちなみに、統合された QtDesigner を使用して MainWindowWidget を設計しましたが、これは非常に快適です。現在 MainWindow を再設計しているため、QtDesigner でも myPictureGLWidget を処理したいと考えています。

それを行う方法はありますか?事前にt​​hnx!

4

2 に答える 2

0

Qt Designer は、そのためのプラグインを提供する必要なく、外部ウィジェット クラスをサポートします。ウィジェットのプロパティと外観が Designer 内で使用できないことを受け入れる必要があるだけです。

  1. ダミーQWidgetをレイアウトに挿入します。

  2. ウィジェットを右クリックし、[昇格...] を選択します。

  3. PictureGLWidgetから昇格した新しいクラスとして追加しQWidgetます。適切なヘッダー ファイルなどを指定します。

  4. ウィジェットを に宣伝しますPictureGLWidget

これが完了すると、によって生成されたコードは、ダミーの代わりに、必要な場所で をuicインスタンス化します。PictureGLWidgetQWidget

ダミー ウィジェットの代わりにデザイナーでを使用する場合はPictureGLWidget、ウィジェットをラップしてウィジェット パレットで公開し、プロパティ サポートなどを提供するデザイナー プラグインを作成できます。

于 2015-07-22T21:34:49.600 に答える