Вставка смайликов в QT QTextEdit

Я пытаюсь вставить эмодзи в поле QT QTextEdit, но оно не распознается и отображается как ??? или же [][]

Я не говорю о смайлике, я говорю о смайликах.

Как я могу убедиться, что QTextEdit QT принимает эмодзи и отображает их правильно?

Спасибо.

Получил это на основе полезного ответа ниже:

РЕШЕНИЕ:

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

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

5

Решение

Значительное количество смайликов персонажи в Стандарт Юникод.
Если вы, например, разрабатываете с 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")));

При этом ваше приложение должно отображать смайликов.

3

Другие решения

Документация 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, указывающий на файл, который встроен в приложение компилятором ресурсов (или на файл изображения на диске).

0

По вопросам рекламы [email protected]