5

リストの先頭にコピーして追加したい QGraphicsScene があります。これを行う最良の方法は何ですか?

QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;

QList<QGraphicsScene *>m_list;
4

2 に答える 2

6

の子について何も知らないため、これを行うのは非常に複雑ですm_scene。の各タイプの関数をdynamic_cast作成したとしても、他の人が独自のタイプのグラフィックスアイテムをサブクラス化して作成し、それらを複製できないようにする可能性があることを覚えておく必要があります。clone()QGraphicsItemQGraphicsItem

基本的に、いいえ、複製することはできませんQGraphicsScene(プロセス内のすべてのアイテムを複製します)。QGraphicsItemにはシーンが 1 つしかないため、元のシーンの子の子を参照することさえできません。

もちろん、メソッド呼び出しを見逃していない限り。ただし、「クローン」、「コピー」、「複製」の検索では結果が得られませんでした。

2 番目の質問では、 を使用しますQList<T *>::push_front。したがって、m_list.push_front( m_DuplicateScene);

(補足: リストの先頭に追加し、リストの最後に追加します。)

于 2008-11-23T02:41:23.520 に答える