我希望能够在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。
答案 0 :(得分:0)
在继承QGraphicScene
的类中,我使用了:
QString text(QString::fromUtf8(xt.text));
...
QGraphicsTextItem *t = addText(text = text.replace("\\n", "\n"), font);
点源是 utf8 :
digraph so {
Café -> Frapé
}
渲染:
您可以找到here C ++代码。
答案 1 :(得分:-1)
我认为你应该使用
QGraphicsTextItem item.
item.setHtml( "Café Frapé" );
功能而不是提到的。阅读此QGraphicsTextItem::setHtml。