Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 坐标缩放导致QPaint::drawText中的字体大小过大_Qt_Scaling_Font Size_Qpainter - Fatal编程技术网

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

Qt 坐标缩放导致QPaint::drawText中的字体大小过大,qt,scaling,font-size,qpainter,Qt,Scaling,Font Size,Qpainter,我正在为MD模拟代码开发简单的2D可视化模块。我想做的是使用以下方法绘制模拟分子的位置: myPainter.drawEllipse(myQPoint,myRx,myRy) 这一部分在我的可视化小部件上运行得非常好。碰巧出现了一个问题,那就是写文本应该代表每个分子的ID(整数) 它绘制文本,但太大。这可能是因为我需要对myPainter使用cooridantes缩放来轻松绘制分子 myPainter.scale(myWidgetWidth_ / simSizeX_ , myWidgetHeig

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

myPainter.drawEllipse(myQPoint,myRx,myRy)
这一部分在我的可视化小部件上运行得非常好。碰巧出现了一个问题,那就是写文本应该代表每个分子的ID(整数)

它绘制文本,但太大。这可能是因为我需要对
myPainter
使用cooridantes缩放来轻松绘制分子

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);
但这些分子的标签仍然太大


提前感谢您的帮助。

既然您想根据固定像素大小调整字体大小,请尝试使用而不是
setPointSize()

既然您想根据固定像素大小调整字体大小,请尝试使用而不是
setPointSize()
记住要绘制文本的位置,然后分两个阶段画。第一个是分子,第二个是文本。在绘制分子之前,保存画师的状态,并在绘制文本之前将其恢复。这将防止文本缩放,同时允许分子缩放。

记住要绘制文本的位置,然后分两个阶段绘制。第一个是分子,第二个是文本。在绘制分子之前,保存画师的状态,并在绘制文本之前将其恢复。这将防止文本缩放,同时允许分子缩放

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