2016-03-31 27 views
1

Bir Unicode sorunum var. Alman Mektupları ä, ü, ö ve ß sadece siyah eşkenar dörtgen beyaz soru işareti olarak görülebilir. Qt5.5.1'de bir QAbstractTableModel yaptım.QAbstractTableModel ve Unicode (Almanca açıklamaları)

Belge UTF-8 kodlu. Bunu zaten denedim, ama yine de aynı sorunu yaşıyorum.

QVariant bodyPartModel::data(const QModelIndex &index, int role) const 
{ 
    switch (role){ 
     case Qt::DisplayRole: 
      if (col == 0 && row == 0) return tr("ü");  
      if (col == 0 && row == 2) return String::fromUtf8("ä"); 
    // 
} 

kimse bu karakterleri doğru görüntülenmesi için nasıl bir ipucu var mı?

düzenleme .: Evet bir String'e ihtiyacım var, bu örnekte sadece bir karakter kullanıyorum. Adriano REPETTI için

Ve sayesinde bu çözüm oldu: Tek bir karakteri dönmek gerekirse

QString::fromWCharArray(L"Steißbein") 
+0

bir göstermek gerekir mi tek karakter? – vahancho

+1

Bu bir UTF-8 dizesi değil, kolay bir yoldur 'dönüşü QString :: fromWCharArray (L" ä ")'. Tek bir karakteriniz varsa (ve e + 'işlerini halletmeniz gerekmeyecek) tek bir QChar kullanmalısınız, ancak genel formu tercih ediyorum. –

cevap

0

, ben yapıyor öneririz aşağıdadır:

QVariant bodyPartModel::data(const QModelIndex &index, int role) const 
{ 
    switch (role){ 
    case Qt::DisplayRole: 
     if (col == 0 && row == 0) return QChar(0x00FC);  
     if (col == 0 && row == 2) return QChar(0x00E4); 
[..]