2012-09-04 26 views
5

Ho scritto un programma con QtWebkit. Ho usato i caratteri arabi in questa applicazione. Ma il testo come mostrato sotto non era applicabile. Se esiste una soluzione per risolverlo? text shown inapplicable in QtWebkit : http://www.shiaupload.ir/images/47343138299124526783.jpg text shown inapplicable:visualizzazione di caratteri arabi in QtWebKit

an example code in here

codice 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> 

}

codice 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(); 
} 

}

+0

Puoi modificare il codice nella domanda? – Blender

risposta

1

Ho affrontato un problema simile molto tempo fa. Qt non stava visualizzando alcuni caratteri arabi come dovrebbero apparire. Ho dovuto cambiare il meccanismo di disegno dei caratteri di Qt e usare la libreria di font 'FreeType' per disegnare i caratteri. Puoi usare FreeType. Ulteriori informazioni: http://freetype.sourceforge.net/index2.html

Oppure è possibile utilizzare un altro motore grafico per ignorare il disegno di Qt, che può visualizzare questi tipi di carattere.