• 1417阅读
  • 2回复

[讨论]QPainter drawText设置字体中英文有差异 [复制链接]

上一主题 下一主题
离线lwei24
 

只看楼主 倒序阅读 楼主  发表于: 2022-05-27
如题,在QPainter自绘的过程中,自己设置了第三方字体中文的并没与设置成功,但英文和数字却设置成功了。
具体代码如下:
  1.     //构造函数
  2.   
  3.     QStringList fontName = QFontDatabase::applicationFontFamilies(fontId);
  4.     if (fontName.count() > 0)
  5.     {
  6.         iFont = QFont(fontName.at(0));// iFont私有成员
  7.     }
  8.     else
  9.     {
  10.         qDebug() << "load XenoisSansPro-Bold.ttf error";
  11.     }
  12.    //重绘
  13. void CustomRectangle::paintEvent(QPaintEvent *event)
  14. {
  15.     Q_UNUSED(event);
  16.     float percent = 0.612;
  17.     QRectF rectangle(10.0, 20.0, 670.0, 26.0);
  18.     painter.drawRect(rectangle);
  19.     painter.fillRect(rectangle, QColor("#293140"));
  20.     QRectF rectUsed(10.0, 20.0, 670.0*percent, 26.0);
  21.     painter.fillRect(rectUsed, QColor("#2F88F0"));
  22.     QRectF rectUnUsed(10.0 + 670.0*percent, 20.0, 670.0*(1-percent), 26.0);
  23.     painter.fillRect(rectUnUsed, QColor(Qt::red));
  24.     QFont font;
  25.     font.setFamily("XenoisSansPro-Bold");
  26.     font.setPixelSize(14);
  27.     painter.setFont(font); //设置XenoisSansPro-Bold字体
  28.     QPen pen;
  29.     pen.setColor(QColor(Qt::white));
  30.     painter.setPen(pen);
  31.     QRectF rectText(10.0 + 10.0, 20.0, 670.0, 26.0);
  32.     //XenoisSansPro-Bold字体数字和英文设置成功,中文字体未变
  33.     painter.drawText(rectText, Qt::AlignLeft | Qt::AlignVCenter, QString("61.2 GB 已用/38.8 GB 可使用"));
  34.     //XenoisSansPro-Bold字体设置成功
  35.     //painter.drawText(rectText, Qt::AlignLeft | Qt::AlignVCenter, QString("61.2 GB Used/38.8 GB UnUsed"));
  36. }


如上,为什么有中文的时候,中文的字体没有和英文或数字同意加载成为XenoisSansPro-Bold字体呢?
请问各位大佬们,为啥会有中文字体未设置成功呢?各位大佬们帮忙看看,给点意见,小弟在此多谢了!
离线liudianwu

只看该作者 1楼 发表于: 2022-05-28
前提是你的字体要支持中文,很多字体只有英文数字,体积很小。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线lwei24

只看该作者 2楼 发表于: 2022-05-30
回 liudianwu 的帖子
liudianwu:前提是你的字体要支持中文,很多字体只有英文数字,体积很小。 (2022-05-28 10:07) 

好吧,多谢大佬指点!
快速回复
限100 字节
 
上一个 下一个