私は Qt Creator をほぼ 1 か月間使用しています。長い間悩まされていたので、これがばかげた質問ではないことを願っています。
私は達成したい:
- で多くの異なるアイテム (1 秒あたり 20 としましょう) を作成し
QGraphicsScene
ます。
- で多くの異なるアイテム (1 秒あたり 20 としましょう) を作成し
- これらすべてのアイテムに対して 1 つのクラスを使用する
- これらすべてのアイテムをマークし、シグナルがトリガーされたときにそれらを削除または非表示にします。
多くの方法を試した後、私が見る最良の方法は を使用することQGraphicsItemGroup
です。それらすべてを にグループ化しようとしましたQGraphicsItemGroup
。しかし、アイテムをグループに追加した後、ライブラリからどの機能を使用しても、アイテムがシーンに表示されなくなりました。
を使用する際に何か間違ったことはありQGraphicsItemGroup
ますか? または、他のより良いアプローチはありますか?
誰の助けも楽しみにしています。本当に感謝。
以下は私のコードの構造です:
// ......
QGraphicsItemGroup *myItemsGroup = new QGraphicsItemGroup
timer->start(100);
connect(timer,SIGNAL(timeout()),this,SLOT(draw_trail()));
// ......
void MyFunction::draw_trail()
{
Trail_item *new_item = new Trail_item;
scene->addItem(new_item);
new_item->setX(COPX-7);
new_item->setY(COPY-7);
new_item->setZValue(5);
/*
then I started trying add to group
//myItemsGroup->addToGroup(new_item)
after adding this line, the item vanishes.
*/
}
(注:trail_item
は私が作成したアイテム クラスです。ループなので、ポインター名の変更方法がわからない*new_item
ため、すべてのアイテムが同じ名前になります。)