c++ - 防止 QGraphicsItem::itemAt() 在 "Background Item"

标签 c++ qt

我正在尝试使用插件设置 GUI。在我当前的阶段,我需要用户点击并指定点的位置。

我设置的插件架构要求插件返回插件希望使用的 QGraphicsItem。在主程序中( future 的插件作者将无法访问),我设置了背景图像来引导点击。插件可以使用 itemChange() 偷偷访问 scene() 并在正在设置的场景上安装 eventFilter() 。这允许插件访问场景点击并处理它需要的任何信息。但是,背景图片由 itemAt() 调用返回。

我希望防止此背景 Pixmap 返回所有 future 插件的 itemAt()。这可能吗?


尝试过:

 setEnabled(false); //No success

最佳答案

这并没有直接回答你的问题,但它应该可以解决你的问题:我建议重新实现 QGraphicsScene::drawBackground() 并在那里绘制你的像素图。这就是该方法的用途。

类似的方法是将像素图放在资源文件中,然后使用样式表将其设置为 QGraphicsView 或其视口(viewport)小部件的背景(我认为它们的效果略有不同)。

关于c++ - 防止 QGraphicsItem::itemAt() 在 "Background Item",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13241034/

相关文章:

c++ - 向 Qt QML Maps 添加标记/位置?

c++ - 在非 Qt 应用程序 (C++) 中使用 Qt 的信号

c++ - MinGW C++ : expected primary-expression before '/' token

android - SDL 一直无法在 Android 上找到字体

c++ - 将文本日期和时间转换为 ATL::CTime

c++ - QtCreator QMediaPlayer 元数据返回空白 QString

c++ - std::exception_ptr 复制构造函数可以抛出吗?

c++ - 获取对象的类型

c++ - 使用 Qt 判断 PC 是否退出待机状态

C++ - Qt QObject::connect GET 跨类请求使用