如何旋转drawText的文本?

新手上路,请多包涵

我想将文本旋转 45 度?

 QFont font;
font.setPixelSize(12);

//grid
for(int i = 0; i < 10; i++){
    painter->drawLine(100, 100 + i * 800/9, 900, 100 + i * 800/9);
    str = QString::number((double)9 - i, 'd', 1);
    painter->setFont(font);
    painter->drawText(75, 100 + i * 800/9 - 6, 40, 40, 1, str);
}

原文由 jdl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

painter->drawText(75, 100 + i * 800/9 - 6, 40, 40, 1, str);painter->rotate(-45); 之后插入 painter->rotate(45); (恢复坐标系的旋转角度):

 painter->rotate(45);
painter->drawText(75, 100 + i * 800/9 - 6, 40, 40, 1, str);
painter->rotate(-45);

根据您的意思是顺时针还是逆时针 45 度,您可能需要否定旋转角度。

旋转坐标系后,您绘制的所有内容都将旋转绘制,直到您恢复画家。保存和恢复画家状态的一种便捷方法是使用 QPainter::save()QPainter::restore()

原文由 Daniel Hedberg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题