我试图在QT QTextEdit框中粘贴表情符号,但它没有得到识别并且显示为???或[] []
我不是在谈论笑脸,我在谈论表情符号。
如何确保QT的QTextEdit接受表情符号并正确显示?
谢谢。
根据以下有用的答案得出结论:
SOLUTION:
QFontDatabase fontDB;
fontDB.addApplicationFont(":/Resources/fonts/seguisym.ttf");
QApplication::setFont(QFont(QStringLiteral("Segoe UI Symbol")));
答案 0 :(得分:3)
Unicode Standard中有相当数量的 表情符号 字符。 例如,如果您正在Mac OS X 10.9中使用Qt 5.3进行开发,则在文本编辑中粘贴 表情符号 字符应该与粘贴任何其他字符时一样。< / p>
您的应用程序显示?
和/或[]
的原因是因为当前字体(可能是默认系统字体)不能为 表情符号 “字符”。
你可以在网上找到合适的字体。请查看this以供参考。
然后您可以将字体添加到Qt应用程序
QFontDatabase fontDB;
fontDB.addApplicationFont(":/A Font Supporting Emoji.ttf");
并将其设置为应用程序的字体,如果您愿意,则仅设置为QTextEdit
setFont(QFont(QStringLiteral("A Font Supporting Emoji")));
有了这个,您的应用应该能够显示 表情符号 。
答案 1 :(得分:0)
QTextEdit :: paste()的Qt文档说:To change the behavior of this function, i.e. to modify what QTextEdit can paste and how it is being pasted, reimplement the virtual canInsertFromMimeData() and insertFromMimeData() functions.
你应该可以转换粘贴的数据,例如指向由ressource编译器(或磁盘上的映像文件)嵌入到应用程序中的文件的HTML img元素。