jdl*_*jdl 6 c++ qt qt4 qpainter qt5
我想将文字旋转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);
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*erg 11
插入painter->rotate(45);之前painter->drawText(75, 100 + i * 800/9 - 6, 40, 40, 1, str);和painter->rotate(-45);之后(恢复坐标系的旋转角度):
painter->rotate(45);
painter->drawText(75, 100 + i * 800/9 - 6, 40, 40, 1, str);
painter->rotate(-45);
Run Code Online (Sandbox Code Playgroud)
根据您的意思是顺时针或逆时针45度,您可能需要否定旋转角度.
旋转坐标系后,您绘制的所有内容都将被旋转,直到您恢复画家为止.保存和恢复画家状态的便捷方法是使用QPainter::save()和QPainter::restore().
painter->save(); // saves current painter state
// painter->rotate(45); clockwise rotation
// painter->rotate(-45); counter clockwise rotation
painter->restore(); // restores painter state
Run Code Online (Sandbox Code Playgroud)