如何在 QGraphicsTextItem 中显示 unicode?

How can I display unicode in QGraphicsTextItem?

我希望能够在 QGraphicsTextItem(或其子类)中显示 Unicode。

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 支持 unicode 吗?可能是 setPlainText 函数出了问题——但是有什么替代方案呢? (我查看了 setDocument 但它也设置了纯文本...)

编辑 - 在屏幕上复制 QGraphicsTextItem 中的特殊字符有效,但仍然无法从代码中放置任何 unicode。

我认为你应该使用

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

函数而不是提到的。阅读此 QGraphicsTextItem::setHtml

在继承QGraphicScene的class中,我使用了:

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

点源是utf8:

digraph so {
Café -> Frapé
}

以及效果图:

您可以找到 here C++ 代码。