如何在 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++ 代码。
我希望能够在 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++ 代码。