文本位置缩放

Posted

技术标签:

【中文标题】文本位置缩放【英文标题】:Text position scaling 【发布时间】:2013-05-08 11:27:49 【问题描述】:

我现在使用QGraphicsViewQGraphicsScene 来显示一些图表。根据该图表的值(它们是直方图),我更改了比例。我还画了一些文本(它们来自QGraphicsItem)来显示它们的值

但我不会像图表那样缩放文本,所以会带来问题。如果我不缩放文本,那么我会得到它的边界 rect 的真实坐标。我想获得 y 轴的比例以在正确的位置绘制文本。

所以我的问题是如何在QGraphicsItemQGraphicsScene 中获得比例。

提前谢谢你。

【问题讨论】:

qt-project.org/doc/qt-4.8/qgraphicsitem.html#scale ? 不,我试过了。这行不通。 【参考方案1】:

如果您实现自己的缩放功能,那么在QGraphicsItem 中没有直接获取缩放的方法。您可以在QGraphicsView(计算比例的地方)中创建一个静态变量来获取比例和获取它们的静态函数。

【讨论】:

【参考方案2】:

嗯,有一个解决方案。在QGraphicsScene你可以得到这样的变换矩阵

QTransform matrix = views().at(0)->transform();

views() 实际上返回 QListQGraphicsViews。获取矩阵以获取比例(例如垂直)后,您可以这样做

qreal verticalScale = matrix.m22();

QGrapcsItem 中获得规模的区别只是

QTransform matrix = scene()->views().at(0)->transform();

其余的都是一样的。

【讨论】:

以上是关于文本位置缩放的主要内容,如果未能解决你的问题,请参考以下文章

从鼠标位置缩放和翻译图像

在 PyQtGraph 和 PySide2 中使用 ImageView 修复文本位置

在不缩放或移动的 3d 图中绘制文本

如何将地图视图中已缩放的位置更改为当前设备位置

如何以特定位置为中心然后缩放到当前位置

MapKit 缩放到用户当前位置