gpt4 book ai didi

c++ - Qt 添加扩展 QGraphicsItem 到场景

转载 作者:行者123 更新时间:2023-11-28 01:00:10 27 4
gpt4 key购买 nike

我创建了一个类 Atom,它扩展了 Qt 类 QGraphicsItem,如下所示:

Atom::Atom(qreal rad, qreal mass, int element, int state) : QGraphicsItem()
{
// Initialization code
}
void Atom::changeState(int newState)
{
// Code...
}

然后,我将原子添加到场景中,如下所示:

Atom *a=new Atom(rad,mass,element,state);
a->setPos(pos);
scene->addItem(a);

但是,Qt 将我的 Atom 类转换为 QGraphicsItem 类。现在,当我调用 scene->items() 时,我得到了 QGraphicsItems 的 QList,它没有我的 Atom 类的属性和方法。

所以,我在问这个问题:我将如何获取已添加到我的 QGraphicsScene 中的原子列表?

谢谢。

最佳答案

您需要将 QGraphicsItem 转换为 Atoms。有关详细信息,请参阅此问题:

Subclassing QGraphicsItem prevents me from being able to use itemAt() on a QGraphicsScene/View

关于c++ - Qt 添加扩展 QGraphicsItem 到场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152590/

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