【问题标题】:Coordinate confusion坐标混乱
【发布时间】:2023-04-06 20:15:02
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果答案是我问题的最终解决方案,我会接受。如果答案有用但不是最终的解决方案,我会投票给它。

标签: c++ qt qt4 coordinates qgraphicsitem


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多