Я пытаюсь вставить эмодзи в поле QT QTextEdit, но оно не распознается и отображается как ??? или же [][]
Я не говорю о смайлике, я говорю о смайликах.
Как я могу убедиться, что QTextEdit QT принимает эмодзи и отображает их правильно?
Спасибо.
Получил это на основе полезного ответа ниже:
РЕШЕНИЕ:
QFontDatabase fontDB;
fontDB.addApplicationFont(":/Resources/fonts/seguisym.ttf");
QApplication::setFont(QFont(QStringLiteral("Segoe UI Symbol")));
Значительное количество смайликов персонажи в Стандарт Юникод.
Если вы, например, разрабатываете с Qt 5.3 в Mac OS X 10.9, вставьте смайликов символы в текстовых редакторах должны работать так же, как и при вставке любого другого символа.
Причина, по которой ваше приложение показывает ?
и / или []
Это потому, что текущий шрифт (возможно, системный шрифт по умолчанию) не обеспечивает представления для смайликов «персонажи».
Вы можете найти правильный шрифт там в Интернете. Проверьте этот для справки.
Затем вы можете добавить шрифт в ваше приложение Qt
QFontDatabase fontDB;
fontDB.addApplicationFont(":/A Font Supporting Emoji.ttf");
и установите его как шрифт для вашего приложения или только ваш QTextEdit
Если вы предпочитаете
setFont(QFont(QStringLiteral("A Font Supporting Emoji")));
При этом ваше приложение должно отображать смайликов.
Документация Qt для QTextEdit :: paste () гласит: 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, указывающий на файл, который встроен в приложение компилятором ресурсов (или на файл изображения на диске).