1

QGraphicsTextItemUnicode (またはそのサブクラス)を表示できるようにしたいと考えています。

テキストを設定する唯一の方法QGraphicsTextItem

setPlainText(text);

しようとしている

setPlainText(QString::fromUtf8("Caf\x00e9 Frap\x00e9"));

また

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
setPlainText("Café Frapé");

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
setPlainText("Caf\x00e9 Frap\x00e9");

私は得る:

Caf? Frap?

私が何をしても(正しいかどうかはわかりませんが)、正しい出力が得られないようです...

QGraphicsTextItemユニコードをサポートしていますか? 機能に問題があるのか​​もしれませんsetPlainTextが、代替手段は何ですか? (調べてみましsetDocumentたが、プレーンテキストも設定されています...)

編集 - QGraphicsTextItem 内の特殊文字のコピーは、一度画面上で機能しますが、コードからユニコードを配置することはできません。

4

2 に答える 2

0

を継承するクラスQGraphicSceneでは、次を使用しました。

        QString text(QString::fromUtf8(xt.text));
        ...
        QGraphicsTextItem *t = addText(text = text.replace("\\n", "\n"), font);

ドットソースはutf8です:

digraph so {
Café -> Frapé
}

そしてレンダリング:

ここに画像の説明を入力

ここで C++ コードを見つけることができます。

于 2015-05-20T18:28:53.533 に答える
-1

を使うべきだと思います

QGraphicsTextItem item.
item.setHtml( "Café Frapé" );

上記の代わりに機能します。このQGraphicsTextItem::setHtmlを読んでください。

于 2015-05-20T18:10:12.020 に答える