2013-07-23 72 views
5

テキストを45度回転したいですか?drawTextのテキストを回転するには?

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); 
} 

答えて

10

挿入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); 

によっては、あなたが45度を意味する場合は、時計回りや反時計回りに、あなたは否定する必要があるかもしれません回転角度。

座標系を回転させると、ペインタを復元するまでペイントされたすべてが回転してペイントされます。ペインタの状態を保存して復元する便利な方法は、QPainter::save()QPainter::restore()です。あなたが以前の状態コール回転に戻したい場合は、単に

painter->drawText(); 

painter->rotate(yourAngle); 

を呼び出す画家によって描かれたテキスト(および他の描画可能オブジェクト)を回転させるために

6
painter->save(); // saves current painter state 
// painter->rotate(45); clockwise rotation 
// painter->rotate(-45); counter clockwise rotation 
painter->restore(); // restores painter state 
+1

回転(-45)または保存/復元のいずれかを省略することができます –

3

再び。

painter->rotate(-yourAngle); 
関連する問題