QLabel——html文本字符串中文无法正常显示



  • 0_1453429134830_1.png
    这段采用了html语法的字符串,在桌面版的Win7上效果如下:
    0_1453429142807_2.png
    在WinXP SP3 嵌入式版下效果如下:
    0_1453429151120_3.png
    可以看出中文全都乱码了。可是我其它部分的中文却不存在中文乱码的问题!

    请前辈们帮忙看看,是什么原因造成的,谢谢!



  • @crazyCpp 一般情况:如果显示的是方块,那么说明没有合适的中文字体;
    如果显示的是问号,那么说明源码格式不是utf-8。



  • "设置<font color=\"#DC64FF\">颜色</font>结束"
    


  • @jiangcaiyang 我给这个QLabel设置的“宋体”,也检查过WinXP嵌入式平台下有SimSun(即宋体)。



  • @crazyCpp 把font-weight: bold这句话去掉怎么样?



  • 补充:Qt4.8.0 嵌入式XP(SP3) 和 桌面Win7 对setStyleSheet支持的差异导致中文乱码
    OKbtn = new QPushButton(tr("确认"));
    OKbtn->setStyleSheet("width:70;height:40;font:bold 20px;"); //写法1
    OKbtn->setStyleSheet("QPushButton#OKbtn{width:70;height:40;font:bold 20px;}"); //写法2

    在桌面Win7平台下:
    “写法1”和“写法2”都能正确显示按钮上的“确认”两个汉字;

    在嵌入式XP平台下:
    “写法1”导致按钮上显示乱码“口口”,不能正确显示“确认”;
    "写法2" 正常显示“确认”两个汉字。



  • @jiangcaiyang
    0_1455690923941_1.PNG
    上面的效果是尝试换了标准的html写法:
    <html><head/><body><p>请将<span style=" font-weight:600; color:#0000ff;">油泵</span>切换到<span style=" font-weight:600; color:#ff0000;">加压</span>状态!达到加压值后会有<span style=" font-weight:600; color:#0000ff;">4分钟</span>恒载时间。</p></body></html>
    发现是<span>部分的标签内容导致中文乱码的。



  • @crazyCpp 那去掉span的内容直接用<font>标签看看?



  • @Zero
    @jiangcaiyang
    根据两位前辈的指点,经过尝试达到最终需要的效果:
    0_1455694999282_2.PNG

    修改过后的富文本字符串如下:

    <html><head/><body>
    <p>请将<font color=\"#0000ff\">油泵</font>切换到<font color=\"#0000ff\">加压</font>状态!达到加压值后会有<font color=\"#0000ff\">4分钟</font>恒载时间。</p>
    </body></html>

Log in to reply
 

走马观花

最近的回复

  • 这张图或许阐述了这个问题。
    有效打造个人品牌.png

    其实对于我们职场人员,尤其是程序员,都有很强的作用。我们虽然产品意识比较弱,但是我们对产品的敏感性强,尤其是我们有制作过产品的经验,这反而是一个优势。

    read more
  • @jiangcaiyang 给你一个大大的赞!
    论坛最近打算再次启用iframely服务了。试试看!

    https://community.nodebb.org/topic/4401

    read more

关注我们

微博
QQ群