2012-02-10 253 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值的圖像並根據旋鈕值更新圖像,但我不想這樣做,因爲旋鈕範圍是0-1000。

感謝

回答

1

這是因爲scaled上的圖像的邊框工作,因爲你旋轉它,90個增量之間的邊界框「膨脹」。爲什麼不在顯示圖像時只設置一次刻度,然後只在此之後旋轉刻度?