zoukankan      html  css  js  c++  java
  • QT QWebKit加载HTML时的字体问题

    1. 字体设置

    QT QWebKit加载HTML时发现字段总是宋体,无法通过CSS控制,后查资料可以通过QWebView设置解决。

        webView = new QWebView(this);
        webView->settings()->setFontFamily(QWebSettings::StandardFont, QString::fromLocal8Bit("微软雅黑,宋体,Times New Roman"));

    发现字体转换为"微软雅黑“。

    通过在CSS中设置

    span,div,p,a
    {
      font-family:'宋体';
    }

    发现所有字体转换为宋体。成功!

    2.中文乱码问题

    2.1 QWebView加载网页后,发现中文乱码。 在页面head中加入下面语句问题解决

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta http-equiv="Content-Language" content="Chinese">

    2.2 当前QWebView运行下面的JS语句时,中文部分为乱码,

    void MainWindow::addLine()
    {
        QString pushStr = "var mem={index:12,name:'sun',unit:'单位',level:'系统级',userid:'123456'}; mtdata.push(mem)";
        webView_1->page()->mainFrame()->evaluateJavaScript(pushStr);
    }

    通过查资料和试验,在QT项目的main函数中加入下列代码问题解决

        //防止页面出现乱码
        QTextCodec *codec = QTextCodec::codecForName("GBK");
        QTextCodec::setCodecForLocale(codec);
        QTextCodec::setCodecForCStrings(codec);
        QTextCodec::setCodecForTr(codec);

    上面的语句中,资料上的代码是这样的:

    #include <QTextCodec>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
     
        //设置中文字体  
        a.setFont(QFont("Microsoft Yahei", 9));
     
        //设置中文编码
    #if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
    #if _MSC_VER
        QTextCodec *codec = QTextCodec::codecForName("GBK");
    #else
        QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    #endif
        QTextCodec::setCodecForLocale(codec);
        QTextCodec::setCodecForCStrings(codec);
        QTextCodec::setCodecForTr(codec);
    #else
        QTextCodec *codec = QTextCodec::codecForName("UTF-8");
        QTextCodec::setCodecForLocale(codec);
    #endif
     
        return a.exec();
    }

    通过试验,用一GBK编码。

  • 相关阅读:
    程序员最怕的事
    钱钟书是怎样做读书笔记的 杨绛
    编码风格不是编码规范
    Google Reader明日关闭:14款替代品对比
    移动应用设计领域中最拔尖的15大应用
    TOGAF:企业信息化复杂吗?
    敏捷个人回顾以及体系2014版线下分享活动
    敏捷个人手机应用iOS和Android公开注册
    IT人的自我导向型学习:学习的4个层次
    IT人的自我导向型学习:学习的3个维度
  • 原文地址:https://www.cnblogs.com/myboat/p/14217162.html
Copyright © 2011-2022 走看看