2016-03-31 13 views
1

私はUnicodeの問題があります。ドイツ語の文字äüö、およびßは、黒い菱形の白い疑問符としてのみ表示されます。私はQt5.5.1でQAbstractTableModelを作った。QAbstractTableModelとUnicode(ドイツ語のウムラウト)

私の文書は、UTF-8コードです。私はすでにこれを試みましたが、私はまだ同じ問題を抱えています。

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("ä"); 
    // 
} 

これらの文字を正しく表示する手掛かりはありますか?

編集:はい私は文字列が必要です、私はこの例では1つの文字を使用しました。

そしてアドリアーノRepettiのおかげで、これは解決策だった:

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

あなたが表示する必要がありますシングルキャラクター? – vahancho

+1

これはUTF-8文字列ではなく、簡単な方法は 'return QString :: fromWCharArray(L"ä ")'です。あなたが本当に単一の文字を持っているなら(そしてあなたはe +のものを扱う必要はないでしょうが)一般的な形を好むなら、あなたは単一の 'QChar'を使用するかもしれません。 –

答えて

0

あなたは、単一の文字を返すために必要がある場合は、私は次のことをやってお勧めします:

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); 
[..]