6

我用 QtWebkit 编写了一个程序。我在这个应用程序中使用了阿拉伯字体。但如下所示的文字是不适用的。是否有解决方案来解决它? (来源:shiaupload.ir在 QtWebkit 中显示的文本不适用:

显示不适用的文字:

此处的示例代码

html代码:{

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 </head>


<style>
/*Twe Arabic font for test:*/
@font-face {
        font-family: '__me_quran';
        src: url(me_quran.ttf) format('truetype');
    }
@font-face {
        font-family: '__traditionalArabic';
        src: url(trado.ttf) format('truetype');
    }
 #para1
{
 font-family :/*__me_quran*/__traditionalArabic;
 text-align : justify;/*In this project i need justify alinement*/
 direction:rtl;
}


</style>
<script type="text/javascript" >
    var step=1;
    function plusZoom1(){
        document.getElementById("para1").style.zoom = parseFloat(step);
        step +=0.5;
    }

    function minusZoom1(){
        step -=0.5;
        document.getElementById("para1").style.zoom = parseFloat(step);
    }
</script>
<body>
<input type="button" value="+" onclick="plusZoom1();" />
<input type="button" value="-" onclick="minusZoom1();" />
<p id="para1">
       بِسْمِ اَللّٰهِ اَلرَّحْمٰنِ اَلرَّحِيمِ ( 1 )  اَلْحَمْدُ لِلّٰهِ رَبِّ اَلْعٰالَمِينَ ( 2 )  اَلرَّحْمٰنِ اَلرَّحِيمِ ( 3 )  مٰالِكِ يَوْمِ اَلدِّينِ ( 4 )  إِيّٰاكَ نَعْبُدُ وَ إِيّٰاكَ نَسْتَعِينُ ( 5 )  اِهْدِنَا اَلصِّرٰاطَ اَلْمُسْتَقِيمَ ( 6 )  صِرٰاطَ اَلَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ اَلْمَغْضُوبِ عَلَيْهِمْ وَ لاَ اَلضّٰالِّينَ ( 7 ) 
</p>
</body>
</html>

}

qt代码:{

#include <QtGui/QApplication>
#include <QWebView>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebView wv;
    wv.setUrl(QUrl::QUrl("qrc:/rc/a.html"));
    wv.show();

    return a.exec();
}

}

4

1 回答 1

1

I faced similar problem long time back. Qt was not displaying some Arabic characters as they should appear. I had to change Qt's font drawing mechanism and use 'FreeType' font library for drawing fonts. You can use FreeType. More information here: http://freetype.sourceforge.net/index2.html

Or you may use some other graphics engine to bypass Qt's drawing - which can display these fonts.

于 2012-11-27T05:34:20.283 回答