1

我希望能够在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。

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 回答