C++ 在QT-qtexdit中粘贴表情符号

C++ 在QT-qtexdit中粘贴表情符号,c++,qt,user-interface,qt4,qt5.3,C++,Qt,User Interface,Qt4,Qt5.3,我正在尝试将表情符号粘贴到QT QTextEdit框中,但它没有被识别,显示为???或【】【】 我不是在说微笑,我是在说表情符号 如何确保QT的QTextEdit接受表情符号并正确显示它们 多谢各位 是根据下面的有用答案得出的: QFontDatabase fontDB; fontDB.addApplicationFont(":/Resources/fonts/seguisym.ttf"); QApplication::setFont(QFont(QStringLite

我正在尝试将表情符号粘贴到QT QTextEdit框中,但它没有被识别,显示为???或【】【】

我不是在说微笑,我是在说表情符号

如何确保QT的QTextEdit接受表情符号并正确显示它们

多谢各位

是根据下面的有用答案得出的:

    QFontDatabase fontDB;
    fontDB.addApplicationFont(":/Resources/fonts/seguisym.ttf");

    QApplication::setFont(QFont(QStringLiteral("Segoe UI Symbol")));
解决方案:

    QFontDatabase fontDB;
    fontDB.addApplicationFont(":/Resources/fonts/seguisym.ttf");

    QApplication::setFont(QFont(QStringLiteral("Segoe UI Symbol")));

QTextEdit::paste()的Qt文档说明:
要更改此函数的行为,即修改QTextEdit可以粘贴的内容以及粘贴方式,请重新实现虚拟CANINSERTFORMMEDITA()和INSERTFORMMEDITA()函数。


在那里,您应该能够将粘贴的数据转换为HTML img元素,该元素指向由ressource编译器嵌入到应用程序中的文件(或磁盘上的图像文件)。

中包含大量的表情符号。 例如,如果您正在使用Mac OS X 10.9中的Qt 5.3进行开发,则在文本编辑中粘贴表情符号应与粘贴任何其他字符时一样有效

应用程序显示
和/或
[]
的原因是当前字体(可能是默认的系统字体)没有为表情符号提供表示形式。 你可以在网上找到合适的字体。查阅参考资料

然后可以将字体添加到Qt应用程序中

QFontDatabase fontDB;
fontDB.addApplicationFont(":/A Font Supporting Emoji.ttf");
并将其设置为应用程序的字体,或者如果愿意,仅将其设置为
QTextEdit

setFont(QFont(QStringLiteral("A Font Supporting Emoji")));

有了这个,你的应用程序应该能够显示表情符号

可能的覆盖副本。这似乎是一个可行的方法:@Merlin069我认为这不是一个有效的副本,粘贴可能有自己的问题,超出了Q的范围。