访问QGraphicsScene中的其他项目内容
Access other item contents within a QGraphicsScene
我有一个dialog.cpp文件,它在这里我创建了我的QGraphicsScene
,使用QGraphicsView
。
我创建了两个继承QGraphicsPixmapItem
、"Vehicle"
和"Junction"
的类。这两个对象都被添加到我的dialog.cpp文件中的同一个QGraphicsScene
中。
我想从我的"Vehicle"
对象中调用"Junction"
成员的方法。该方法返回一个我需要的布尔值。
这更像是一个面向c++的问题,因为我相信有一个简单的解决方案,利用访问父节点。
项目背景信息:每个"Vehicle"
沿着道路移动并接近"Junction"
。然后车辆必须询问交叉口"我的车道有绿灯吗?",交叉口将回复"true/false"
。
在通过QT文档审查可能的解决方案后,我已经部分解决了这个问题。
调用this->scene()
允许访问添加对象的场景的成员函数。因为我知道我的对象的坐标,所以我调用this->scene()->itemAt(240,0);
来检索指向该项的指针。
返回的指针是场景中所提供坐标的最上面的项。如果这提供了一个问题,请交替使用scene()->items()
来检索现场所有项目的列表。
->parent()
函数,并认为这可能是解决方案,并结合动态将其转换为所需的指针。如果我找到一个完整的解决方案,将更新答案。
相关文章:
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual Studio 中的 CMake 项目:如何添加其他包含和库目录?
- 介子项目:我可以将部分源位于其他地方吗?
- 用于对项目进行分组并将单个项目映射到其他组成员的数据结构
- 如何在其他Visual Studio项目中包含CMake lib/projects?
- 相同的 for 循环适用于其他项目,但不适用于此项目。为什么?
- 如何在不受其他文件影响的情况下"by itself" Visual Studio 项目中运行C++文件?
- 将 somedialog.h 包含在项目的其他部分中会使编译器看不到 ui_somedialog.h
- QCombobox,字符串旁边有项目的其他数据
- 来自 Omnet++ 中其他项目的引用标头
- 在 Eclipse 中漂亮的打印C++适用于某些项目,而不适用于其他项目
- 创建并编译基类以在其他 C++ 项目 (ROS) 中使用
- 是否有其他方法将.dll文件从一个项目复制到我的启动项目中的可执行文件旁边
- 相同的代码,不同的结果?从其他项目包含有什么问题?
- Cmake:制作静态库并在其他项目中使用
- 视觉C++ 引用其他项目中的文件
- (C )正在创建专门用于处理所有其他自定义对象的类/对象一种处理项目的正确方法
- 在其他项目的派生类中,在LNK2001中未出现的虚拟函数在LNK2001中产生
- 未解决的外部符号 - 来自其他项目的静态函数
- GTEST测试项目链接链接到其他可执行文件