0

OgreWidgetクラス -A ポータブル レンダラー ウィジェットを Qt で設計します。

QThread(私のデザインでは)、 (無限レンダーループの場合)およびQWidget(そこにレンダリングするオーガのターゲットウィジェット)でクラスを継承する必要があると思います。

しかし、多くのドキュメントや記事 (たとえば、この) によると、 Virtual inheritance with QObjectis not supported . この継承の結果は次のようなエラーになります。

QObjectのあいまいなベースですOgreWidget

この問題を解決するにはどうすればよいですか?

PS: 私の古いデザインでは、別の を作成し、ターゲット ウィジェットとしてQWidget送信WIdします。OgreWidgetしかし、私はより良い、よりクリーンなインターフェースを設計するつもりです。

4

2 に答える 2

2

QThread最終的にとの両方が基本クラスQWidgetに解決されるため、それは不可能です。QObject

このスレッドはあなたの質問に答えます: QWidget と QThread の両方からどのように継承できますか?

于 2011-09-07T11:56:31.880 に答える
0

ドキュメントは誤解を招く可能性があります。ウィジェットをここでQThreadサブクラス化する必要はありません。QThread

「あなたは間違っています」 - http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/

次のいずれかを行う必要があります。

  • を作成するQThread ogreThreadogreWidgetおよびを作成するogreWidget.moveToThread(&ogreThread)、または
  • QThreadタイプ T の新しいオブジェクトを新しいスレッドで直接作成するように指示できるラッパーを作成します。
于 2011-09-07T14:30:08.893 に答える