0

カスタム QGraphicsView とカスタム QGraphicsScene クラスがあります。新しいカスタム ビューを作成するときは、カスタム シーンをコンストラクターに渡します。コンストラクターは setScene() を呼び出します。しかし、後でシーン クラスで views() を呼び出すときに問題が発生し、それが QList として返されます。views() 関数をオーバーライドする必要があると思いますが、その中で何が違うのか完全にはわかりません.

また、実際には 2 つのカスタム シーン クラスがありますが、同じビューを使用しています。2 つの異なるコンストラクターを作成するのに問題があります。

my_view(my_scene1 * scene, QWidget *parent =NULL);
my_view(my_scene2 * scene, QWidget *parent =NULL);

通常は正常に機能していた他のファイルで、多くの「不完全なタイプ」エラーが発生します。

4

1 に答える 1

1

QGraphicsView と QGraphicsScene のポイントを見逃しているようです。QGraphicsScene を、その世界にオブジェクトがある世界と考えてください。QGraphicsView は、世界 (QGraphicsScene) を見ているウィンドウまたはカメラのようなものです。

そのことを念頭に置いて、1 つのシーンを複数のビューで見ることは理にかなっていますが、複数のシーンを 1 つのビューにリンクさせることはできません。

QGraphicsScene で views() を呼び出すと、リストが返されます。これは、シーンの領域を見ているすべての QGrahicsViews のリストであるためです。

于 2013-11-07T16:23:48.830 に答える