【问题标题】:Text position scaling文本位置缩放
【发布时间】:2013-05-08 11:27:49
【问题描述】:
我现在使用QGraphicsView 和QGraphicsScene 来显示一些图表。根据该图表的值(它们是直方图),我更改了比例。我还画了一些文本(它们来自QGraphicsItem)来显示它们的值
但我不会像图表那样缩放文本,所以会带来问题。如果我不缩放文本,那么我会得到它的边界 rect 的真实坐标。我想获得 y 轴的比例以在正确的位置绘制文本。
所以我的问题是如何在QGraphicsItem 或QGraphicsScene 中获得比例。
提前谢谢你。
【问题讨论】:
标签:
c++
qt
qgraphicsview
qgraphicsitem
qgraphicsscene
【解决方案1】:
如果您实现自己的缩放功能,那么在QGraphicsItem 中没有直接获取缩放的方法。您可以在QGraphicsView(计算比例的地方)中创建一个静态变量来获取比例和获取它们的静态函数。
【解决方案2】:
嗯,有一个解决方案。在QGraphicsScene你可以得到这样的变换矩阵
QTransform matrix = views().at(0)->transform();
views() 实际上返回 QList 的 QGraphicsViews。获取矩阵以获取比例(例如垂直)后,您可以这样做
qreal verticalScale = matrix.m22();
在QGrapcsItem 中获得规模的区别只是
QTransform matrix = scene()->views().at(0)->transform();
其余的都是一样的。