首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何隐藏Qt中在一个特定循环中创建的所有项?

如何隐藏Qt中在一个特定循环中创建的所有项?
EN

Stack Overflow用户
提问于 2016-08-01 06:46:00
回答 1查看 887关注 0票数 0

我已经使用将近一个月了。我希望这不是一个愚蠢的问题,因为它困扰了我很长时间。

我要做到:

    1. QGraphicsScene中创建许多不同的项(比如每秒20项)。

    1. 对所有这些项使用一个类。

    1. 标记所有这些项目,在触发信号时删除或隐藏它们。

在尝试了许多方法之后,我看到最好的方法是使用QGraphicsItemGroup。我试着把他们都组织成一个QGraphicsItemGroup。但是在将一个项目添加到一个组后,不管我从库中使用了什么功能,该项目都拒绝在场景中显示。

我在使用QGraphicsItemGroup时做错了什么吗?或者还有其他更好的分配吗?

期待任何人的帮助。真的很感激。

下面是我的代码结构:

代码语言:javascript
复制
// ......
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是我创建的一个item类。因为它是一个循环,所以我不知道如何更改*new_item指针名,所以所有项都有相同的名称。)

EN

回答 1

Stack Overflow用户

发布于 2016-09-08 15:43:49

确保您已经在场景中添加了QGraphicsItemGroup,并且QGraphicsItemGroup是可见的。

您可以像其他任何QGraphicsItemGroup一样将QGraphicsItem添加到场景中,使用QGraphicsScene::addItem(QGraphicsItem*)方法

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38692507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档