2010-10-16 62 views
2

我正在爲MD模擬代碼設計簡單的2D可視化模塊。我想要做的是繪製模擬分子的位置:座標縮放導致QPainter :: drawText中的字體太大

myPainter.drawEllipse(myQPoint,myRx,myRy) 

而且這部分在我的可視化部件上工作得很好。碰巧是一個問題的事情是寫文本應該代表每個分子的ID(整數)。

myPainter.drawText(myPosPoint,QString::number(mySoftMolecule2D->getID())); 

它繪製文本,但它太大。這可能是因爲我需要使用cooridantes縮放比例來輕鬆繪製分子。

myPainter.scale(myWidgetWidth_/simSizeX_ , myWidgetHeight_/simSizeY_); 
// myWidgetWidth_ is much bigger simSizeX_ 
// myWidgetHeight_ is much bigger simSizeY_ 

我試圖把這樣的線路之前,我在myPainter執行縮放cooridnates:

QFont myFont; 
myFont.setPointSizeF(1.0); // values less than 1.0 doesn't work 
myFont.setFamily("Courier"); 
myPainter.setFont(myFont); 

但分子的標籤仍然太大了。

在此先感謝您的幫助。

回答

0

請記住您想要繪製文本的位置,然後分兩個階段繪製。第一個是分子,第二個是文本。在繪製分子之前,保存畫家的狀態,並在繪製文本之前將其恢復。這應該防止縮放文本,同時允許分子縮放。