私はをサブクラス化QLabel
しており、ユーザーがマウスで画像をドラッグ(または回転)するときに回転させようとしています。現在、私はすべてのマウス移動イベントで時計回りに回転しています。
void RotoTest::slotMouseMoved()
{
currentRotation += 1;
rotate(currentRotation % 360);
}
void RotoTest::rotate(int degree)
{
QPixmap pixmap(originalPixmap);
QPixmap rotatedMap(pixmap.size());
QPainter p(&rotatedMap);
p.translate(pixmap.size().width() / 2, pixmap.size().height() / 2);
p.rotate(degree);
p.translate(-pixmap.size().width() / 2, -pixmap.size().height() / 2);
p.drawPixmap(0, 0, pixmap);
this->setPixmap(rotatedMap);
}
これは機能して回転しますが、問題は、画像が非常に遅く、ぎくしゃくし、反応しなくなることです。特に、特定のインスタンスでマウスをすばやくまたは長く動かすことができます。これは、マウスを動かすと大量の信号が送信されるためだと思います。スムーズな回転を実現する方法について何か提案はありますか?私は、画像が回転するのと同じくらいうまく回転することを探してQDial
います。