2012-02-10 28 views
1

私はQDialのペイントイベントをオーバーライドし、イメージを表示して新しい外観を与えます。今私は現在の値に従って画像を回転させたいと思います。私は次のコードを使用してそれをやっています。スケーリングせずにQPixmapを回転する

m_PixmapFound=m_Qpixmap.load(fileName); 

if (m_PixmapFound) 
{ 

      QMatrix rm; 
      rm.rotate(value()*5); 

      m_Qpixmap = m_Qpixmap.transformed(QPixmap::trueMatrix(rm,this->width(),this->height())); 
      m_Qpixmap = m_Qpixmap.scaled(QSize(163,163),Qt::KeepAspectRatio,Qt::SmoothTransformation); 

      QPainter myPainter(&m_Qpixmap); 
} 

イメージは回転しますが、イメージは異なるダイヤル値で異なるサイズにスケールされます。 QDialを回転させると、ダイヤルが大きくなり、小さくなります。

この問題を解決する方法を教えてください。

各QDial値の画像を取得し、ノブの値に応じて画像を更新する方法が1つありますが、ノブの範囲が0〜1000であるため、これをしたくありません。

おかげ

答えて

1

scaledは、画像のバウンディングボックスで動作するので、あなたはそれを回転しているので、それはだ、バウンディングボックス「うねり」90deg刻みの間。画像を表示するときに一度スケールを設定してから、それを回転させてみてください。

関連する問題