【问题标题】:Pasting emoji in QT QTextEdit在 QT QTextEdit 中粘贴表情符号
【发布时间】:2014-11-01 21:24:15
【问题描述】:

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

我不是在谈论笑脸,我在谈论表情符号。

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

谢谢。

根据以下有用的答案知道了:

解决方案:

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

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

【问题讨论】:

标签: c++ qt user-interface qt4 qt5.3


【解决方案1】:

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.

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

【讨论】:

    【解决方案2】:

    Unicode Standard 中有相当多的 emoji 字符。 例如,如果您在 Mac OS X 10.9 中使用 Qt 5.3 进行开发,那么在文本编辑中粘贴 emoji 字符应该与粘贴任何其他字符时一样。

    您的应用程序显示? 和/或[] 的原因是因为当前字体(可能是默认系统字体)不提供表情符号 em> “字符”。 你可以在网上找到合适的字体。参考this

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

    QFontDatabase fontDB;
    fontDB.addApplicationFont(":/A Font Supporting Emoji.ttf");
    

    并将其设置为您的应用程序的字体,如果您愿意,也可以只设置为您的QTextEdit

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

    有了这个,您的应用应该能够显示 emoji

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      相关资源
      最近更新 更多