文字位置缩放

时间:2013-05-08 11:27:50

标签: c++ qt qgraphicsview qgraphicsitem qgraphicsscene

我现在正在使用QGraphicsViewQGraphicsScene来展示一些图表。根据图表的值(它们是直方图),我改变了比例。我还绘制了一些文本(它们来自QGraphicsItem),用于显示像这样的值

enter image description here

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

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

提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

嗯,有一个解决方案。在QGraphicsScene中,您可以像这样获得转换矩阵

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

views()实际上会返回QListQGraphicsView个。在获得用于获得比例的矩阵(例如垂直)之后,您可以执行此操作

qreal verticalScale = matrix.m22();

QGrapcsItem中获得比例的差异只是

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

其余的都一样。