我有graphicsView,其中在场景中绘制了不同的项目。我希望有一个尺寸选项,即尺寸。
有不同的项目,如线条,圆形,椭圆形,弧形,点,文字, 我希望当点击任意一个项目的两个点时,或者在场景的任何地方,它应该告诉我它的尺寸。
使用鼠标点击绘制项目。我可以获得帮助吗?
这些项目继承自QGraphicsItem,LineItem。
答案 0 :(得分:1)
你可以使用这样的东西来获得以英寸为单位的长度:
qreal distance(QPointF & p1, QPointF & p2) {
return QLineF(p1, p2).length() / QApplication::screens().at(0)->physicalDotsPerInch();
}
如果你想要厘米,乘以2.54。然后创建一个QGraphicsItem
,它绘制两点之间的直线和带距离的文本。
您可以使用void QWidget::mousePress/Release/Event(QMouseEvent * event)
并从event->pos()
获取点击位置,并且在实际绘制尺寸时应映射到场景坐标。
如果你不想要实际的线条长度,而是你想要张贴的图像中的水平或垂直长度,你可以根据两个点x或y分量之间的绝对差值来计算。