\Qt5.1.0\qtbase\src\plugins\platforms\windows\qwindowsfontdatabase.cpp
static QStringList extraTryFontsForFamily(const QString& family)
{
QStringList result;
QFontDatabase db;
if (!db.writingSystems(family).contains(QFontDatabase::Symbol)) {
if (!tryFonts) {
LANGID lid = GetUserDefaultLangID();
switch (lid&0xff) {
case LANG_CHINESE: if ( lid == 0x0804 ) tryFonts = ch_TW_tryFonts; else
tryFonts = ch_CN_tryFonts; break;
case LANG_JAPANESE:
tryFonts = jp_tryFonts;
break;
case LANG_KOREAN:
tryFonts = kr_tryFonts;
break;
default:
tryFonts = other_tryFonts;
break;
}
}
QStringList fm = QFontDatabase().families();
const char **tf = tryFonts;
while (tf && *tf) {
if (fm.contains(QLatin1String(*tf)))
result << QLatin1String(*tf);
++tf;
}
}
return result;
}