gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 02:02:53 25 4
gpt4 key购买 nike

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

我要实现:

    1. QGraphicsScene 中创建许多不同的项目(比如说每秒 20 个)。
    1. 对所有这些项目使用一个类
    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是我创建的一个item类,由于是循环,不知道怎么改*new_item指针名,所以所有item有相同的名字。)

最佳答案

确保您已添加 QGraphicsItemGroup在场景中,QGraphicsItemGroup可见。

您可以添加 QGraphicsItemGroup和其他人一样去现场QGraphicsItem , 使用方法 QGraphicsScene::addItem(QGraphicsItem*)

关于c++ - 如何隐藏在 Qt 的一个特定循环中创建的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38692507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com