协调混乱

时间:2010-06-14 07:35:44

标签: c++ qt qt4 coordinates qgraphicsitem

我将QGraphicsItem子类化并重新实现了油漆 在绘画中,我写了类似的东西来标记项目:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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