如何在Qt中隐藏在一个特定循环中创建的所有项目
How to hide all the Items created in one particular loop in Qt?
我已经使用Qt Creator将近一个月了。我希望这不是一个愚蠢的问题,因为它困扰了我很长时间。
我想实现:
-
- 在
QGraphicsScene
中创建许多不同的项目(比方说每秒20个)
- 在
-
- 对所有这些项目使用一个类
-
- 标记所有这些项目,在触发信号时删除或隐藏它们
在尝试了很多方法之后,我认为最好的方法是使用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
指针名称,所以所有项都有相同的名称。)
确保已在场景中添加QGraphicsItemGroup
,并且QGraphicsItemGroup
可见。
您可以使用方法QGraphicsScene::addItem(QGraphicsItem*)
将QGraphicsItemGroup
添加到场景中,就像任何其他QGraphicsItem
一样
相关文章:
- 使用std::list创建循环链表
- 如何创建循环来遍历数组
- 如何将 A 实现到 B 中,将 B 实现到 A 中(不创建循环)?
- 如何创建循环数组
- 有没有办法在 c++ 中创建循环数组
- 通过创建循环简化一些重复操作的代码
- 如何为创建循环创建新样式
- 尝试使用结构在C++中创建循环缓冲区
- 创建循环功能以计算成本
- 如何在C++中使用 STL 列表创建循环
- 为无效字符创建循环
- 在链表创建循环中插入
- C++:创建循环条件的 int 数组时出现问题
- boost图形从txt文件创建循环中的图形
- 如何在omnet++中创建循环
- c++为不符合条件的数据输入创建循环
- 如何在c++中使用int值创建循环(简单)
- 路径查找算法创建循环
- 需要帮助创建循环
- 如何在php中创建循环模板