using twemoji on windows 10

This commit is contained in:
parhelia512 2025-10-04 22:58:29 +08:00
parent 0b691cf56f
commit c91d458b2e
4 changed files with 15 additions and 2 deletions

View File

@ -223,7 +223,10 @@ set(PROJECT_SOURCES
) )
if (NOT APPLE AND Qt6_VERSION VERSION_GREATER_EQUAL 6.9.0) if (NOT APPLE AND Qt6_VERSION VERSION_GREATER_EQUAL 6.9.0)
list(APPEND PROJECT_SOURCES res/EmojiFont.qrc) list(APPEND PROJECT_SOURCES res/EmojiFont.qrc)
if (WIN32)
list(APPEND PROJECT_SOURCES res/EmojiFontWin.qrc)
endif ()
endif () endif ()
# Qt exe # Qt exe

5
res/EmojiFontWin.qrc Normal file
View File

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/font">
<file alias="Twemoji">font/TwemojiCOLR.ttf</file>
</qresource>
</RCC>

BIN
res/font/TwemojiCOLR.ttf Normal file

Binary file not shown.

View File

@ -18,6 +18,7 @@
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
#include "include/sys/windows/MiniDump.h" #include "include/sys/windows/MiniDump.h"
#include "include/sys/windows/eventHandler.h" #include "include/sys/windows/eventHandler.h"
#include "include/sys/windows/WinVersion.h"
#include <qfontdatabase.h> #include <qfontdatabase.h>
#endif #endif
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
@ -71,14 +72,18 @@ int main(int argc, char* argv[]) {
#if !defined(Q_OS_MACOS) && (QT_VERSION >= QT_VERSION_CHECK(6,9,0)) #if !defined(Q_OS_MACOS) && (QT_VERSION >= QT_VERSION_CHECK(6,9,0))
// Load the emoji fonts // Load the emoji fonts
#ifdef Q_OS_WIN
int fontId = QFontDatabase::addApplicationFont(WinVersion::IsBuildNumGreaterOrEqual(BuildNumber::Windows_11_22H2) ? ":/font/notoEmoji" : ":/font/Twemoji");
#else
int fontId = QFontDatabase::addApplicationFont(":/font/notoEmoji"); int fontId = QFontDatabase::addApplicationFont(":/font/notoEmoji");
#endif
if (fontId >= 0) if (fontId >= 0)
{ {
QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId); QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
QFontDatabase::setApplicationEmojiFontFamilies(fontFamilies); QFontDatabase::setApplicationEmojiFontFamilies(fontFamilies);
} else } else
{ {
qDebug() << "could not load noto font!"; qDebug() << "could not load emoji font!";
} }
#endif #endif