坐标缩放导致QPainter::drawText中的字体大小过大

3

我正在为MD模拟代码开发一个简单的2D可视化模块。我的目标是使用以下方法绘制模拟分子的位置:

myPainter.drawEllipse(myQPoint,myRx,myRy)

在我的可视化小部件上,这部分运作得相当不错。问题出在编写代表每个分子ID(整数)的文本时。

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

它可以绘制文本,但是字体太大了。这可能是因为我需要使用坐标缩放来方便地绘制分子。

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

在我执行myPainter的坐标缩放之前,我尝试添加这样的行:

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

但是分子的标签仍然过于庞大。
提前感谢您的任何帮助。
2个回答

0

0
记住你想要绘制文本的位置,然后分两个阶段进行绘制。第一阶段是绘制分子,第二阶段是绘制文本。在绘制分子之前,保存绘图器的状态,并在绘制文本之前恢复它。这样可以防止文本的缩放,同时允许对分子进行缩放。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接