【发布时间】:2016-10-28 17:01:00
【问题描述】:
我正在使用 Qt 5.6,我想在一个圆圈周围绘制一些文本标签并旋转文本标签以根据其围绕圆圈的位置来定位文本,所以 12 点钟会有 0 度旋转, 3 点钟旋转 90 度,6 点钟旋转 180 度等。
我正在围绕其中心位置对齐文本:
void drawText(QPainter* pobjPainter, qreal fltX, qreal fltY
,int intFlags, const QString* pobjText) {
const qreal fltSize = 32767.0;
QPointF ptfCorner(fltX, fltY - fltSize);
if ( (intFlags & Qt::AlignHCenter) == Qt::AlignHCenter ) {
ptfCorner.rx() -= fltSize / 2.0;
} else if ( (intFlags & Qt::AlignRight) == Qt::AlignRight ) {
ptfCorner.rx() -= fltSize;
}
if ( (intFlags & Qt::AlignVCenter) == Qt::AlignVCenter ) {
ptfCorner.ry() += fltSize / 2.0;
} else if ( (intFlags & Qt::AlignTop) == Qt::AlignTop ) {
ptfCorner.ry() += fltSize;
}
QRectF rctPos(ptfCorner, QSizeF(fltSize, fltSize));
pobjPainter->drawText(rctPos, intFlags, *pobjText);
}
我想对文本应用旋转。
我想重现类似于所示内容的内容:
http://www.informit.com/articles/article.aspx?p=1405545&seqNum=2
似乎rotate函数旋转了整个painter画布,所以坐标必须考虑到旋转,这真的让我很难过。我想将文本定位在椭圆周围然后旋转它,我怎么知道坐标应该是什么?
【问题讨论】:
-
this answer 对您的情况没有帮助吗?
-
很有趣,我一直在看这个,但是试过了,它对我不起作用......我还在调查。