查看完整版本: [-- 帮忙解释一下,绘制的文本是图片的效果 --]

QTCN开发网 -> Qt基础编程 -> 帮忙解释一下,绘制的文本是图片的效果 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

fengwujiutan 2019-06-25 11:19

帮忙解释一下,绘制的文本是图片的效果


   请教一下,下面本是绘制一个文本信息,不明白为什么绘制的是一个相机的图片?请帮忙解释一下,谢谢
    QPixmap pix(25, 25);
    pix.fill(Qt::transparent);

    QPainter painter;
    painter.begin(&pix);
    painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);

    painter.setPen(QColor(Qt::red));
    painter.setBrush(QColor(Qt::green));

     QFont  iconFont.setPixelSize(25);
    painter.setFont(iconFont);

    QChar c = QChar(61488);
    painter.drawText(pix.rect(), Qt::AlignCenter, c);
    painter.end();

   这里不太明白绘制QChar值,会出现图片,QChar值如何跟图片匹配的?谢谢

nigoole 2019-06-25 12:04
绘制的文本跟字体有关系~!

fengwujiutan 2019-06-25 13:32
nigoole:绘制的文本跟字体有关系~! (2019-06-25 12:04) 

QChar(61488),不同的QChar值例如:61544,61535会显示不同的图片,这些值好像是跟图片是对应的,不明白原理

20091001753 2019-06-25 17:53
所以你的意思是,你想绘制的文本内容是“61488”?
那就直接写
painter.drawText(pix.rect(), Qt::AlignCenter, “61488”);

20091001753 2019-06-25 18:05
比如一段文字,QString = "你好"

QString里,每个字都是一个QChar
QString,QChar 的文字编码是 utf8

计算机只能识别数字,不同的数字代表不同的文字。
数字与文字的映射关系,就是文字编码。

对于 utf8 编码,20320 = 你,22909 = 好。

所以如下代码
QChar c(20320);
qDebug()<<QString(c);
输出就是“你”

fengwujiutan 2019-06-26 10:04
20091001753:比如一段文字,QString = "你好"
QString里,每个字都是一个QChar
QString,QChar 的文字编码是 utf8
....... (2019-06-25 18:05) 

谢谢您的回复,我明白了


查看完整版本: [-- 帮忙解释一下,绘制的文本是图片的效果 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled