找回密码
 立即注册
收起左侧

用Qpainter类drawText时的问题

3
回复
7378
查看
[复制链接]
累计签到:118 天
连续签到:2 天
来源: 2015-7-17 09:37:07 显示全部楼层 |阅读模式
1Qter豆
  1. if(showC()) {
  2.        painter.scale(1.666666 / TperGrid(), 100.0 / mAhperGrid());
  3.        painter.setPen(QPen(colorC, mAhperGrid()/100.0*penWidC));
  4.        if(showSteps() < 0){
  5.             for(int i = 0; i < vecPathC.count(); i++){
  6.             painter.setPen(QPen(colorC, mAhperGrid()/100.0*penWidC));
  7.             vecPathC.at(i)->translate(vecBaseTime.at(i), 0);
  8.             painter.drawPath(*(vecPathC.at(i)));
  9.             if(showData()){
  10.                painter.setPen(QPen(colorA, mAhperGrid()/100.0*penWidC));
  11.                point = vecPathC.at(i)->currentPosition();
  12.                if(vecEndData.at(i).type == TG5000::Charge){
  13.                QFont font("宋体",12,QFont::AnyStyle,false);
  14.                painter.setFont(font);
  15.                painter.drawText(point.x(),point.y(),QString::number(vecEndData.at(i).V) + "V");
  16.             }
  17.          }

  18.        painter.setPen(QPen(colorC, mAhperGrid()/100.0*penWidC));
  19.        vecPathC.at(i)->translate(-vecBaseTime.at(i), 0);
  20.     }
  21. }
  22. else if(showSteps() < vecPathC.count()){
  23.       painter.drawPath(*(vecPathC.at(showSteps())));
  24. }
  25. painter.scale(TperGrid()/1.666666, mAhperGrid()/100.0)

复制代码
最近在用Qpainter画图,我想在一段曲线末端写上一段文字,如上的代码,用currentposition()获取曲线末端的坐标后DrawText();作完了以后问题来了:当我把坐标系缩放的时候,字体也跟着缩放,有没有一个好办法当坐标系缩放的时候,字体一直不变

最佳答案

查看完整内容

painter->save(); painter->resetTransform(); painter->drawText(point.x(),point.y(),QString::number(vecEndData.at(i).V) + "V"); painter->restore();
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2015-7-17 09:37:08 显示全部楼层
painter->save();
painter->resetTransform();
painter->drawText(point.x(),point.y(),QString::number(vecEndData.at(i).V) + "V");
painter->restore();
回复

使用道具 举报

累计签到:118 天
连续签到:2 天
2015-7-17 14:30:34 显示全部楼层
都没人给个意见么?坐等回复
回复

使用道具 举报

累计签到:118 天
连续签到:2 天
2015-7-18 10:34:27 显示全部楼层
想了一个晚上,居然让我想出办法来了。。。。。。
那就是让字体是可变大小的
  QFont font("宋体",fontSize,QFont::AnyStyle,false);
fontSize从ui.spinbox里获取,连接一个信号与槽,当spinBox里的值变化时,绘图窗体就updata();
这样当坐标系缩放时,可以调节字体的大小到可以看清的位置。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了