c++ - 坐标困惑

标签 c++ qt qt4 coordinates qgraphicsitem

我继承了 QGraphicsItem 并重新实现了 paint。
在绘画中,我写了这样的东西来标记项目:

 painter->drawText("Test",10,40);

一段时间后,我认为用单独的项目处理标签可能会有用。所以我写了这样的东西。

QGraphicsTextItem *label = new QGraphicsTextItem("TEST",this);
setPos(10,40);

但是两个“TEST”图没有出现在屏幕上的同一个地方。我想差异可能与项目坐标 - 场景坐标有关。我尝试了 QGraphicsItem 界面中的所有 mapFrom... 和 mapTo... 组合,但没有任何进展。我想让图画出现在屏幕上的同一个地方。
我想念什么?

最佳答案

我假设您在这两种情况下使用相同的字体大小和类型。如果位置差异非常小,原因可能是 QGraphicTextItem 对其包含的文本使用了一些填充。我会尝试使用 QGraphicsSimpleTextItem,它不会在内部添加花哨的东西,看看你是否仍然有同样的问题。如果您使用 painter 或 setPost,坐标系是相同的,所以这不是问题。如果这没有帮助,我会建议为两者指定相同的矩形以避免 Qt 添加它拥有的分隔空间。

关于c++ - 坐标困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035625/

相关文章:

c++ - Qt5 自定义小部件

c++ - Active Directory:从网络服务帐户下运行的Windows服务调用时,ADsOpenObject失败

c++ - qt 4.8.3 中的 Qt 资源系统错误

c++ - 如何使用socket编程获取系统日期和时间

c++ - qmake 仅在 Debug模式下运行命令,如何?

c++ - Qt:动画 QWidget 的 'roll down'

c++ - QT4内存管理

c++ - 什么时候在堆和堆栈上有类成员?

c++ - 无法编译 bool 连接

c++ - OpenGL 纹理不