📄 qfontdatabase.cpp
字号:
} } } end: if (smoothScalable) return QFontDatabase::standardSizes(); qSort(sizes); return sizes;#endif}/*! Returns a list of standard font sizes. \sa smoothSizes(), pointSizes()*/QList<int> QFontDatabase::standardSizes(){ QList<int> ret; static const unsigned short standard[] = { 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72, 0 }; const unsigned short *sizes = standard; while (*sizes) ret << *sizes++; return ret;}/*! Returns true if the font that has family \a family and style \a style is italic; otherwise returns false. \sa weight(), bold()*/bool QFontDatabase::italic(const QString &family, const QString &style) const{ QString familyName, foundryName; parseFontName(family, foundryName, familyName); ::load(familyName); QtFontFoundry allStyles(foundryName); QtFontFamily *f = d->family(familyName); if (!f) return false; for (int j = 0; j < f->count; j++) { QtFontFoundry *foundry = f->foundries[j]; if (foundryName.isEmpty() || ucstricmp(foundry->name, foundryName) == 0) { for (int k = 0; k < foundry->count; k++) allStyles.style(foundry->styles[k]->key, true); } } QtFontStyle::Key styleKey(style); QtFontStyle *s = allStyles.style(styleKey); return s && s->key.style == QFont::StyleItalic;}/*! Returns true if the font that has family \a family and style \a style is bold; otherwise returns false. \sa italic(), weight()*/bool QFontDatabase::bold(const QString &family, const QString &style) const{ QString familyName, foundryName; parseFontName(family, foundryName, familyName); ::load(familyName); QtFontFoundry allStyles(foundryName); QtFontFamily *f = d->family(familyName); if (!f) return false; for (int j = 0; j < f->count; j++) { QtFontFoundry *foundry = f->foundries[j]; if (foundryName.isEmpty() || ucstricmp(foundry->name, foundryName) == 0) { for (int k = 0; k < foundry->count; k++) allStyles.style(foundry->styles[k]->key, true); } } QtFontStyle::Key styleKey(style); QtFontStyle *s = allStyles.style(styleKey); return s && s->key.weight >= QFont::Bold;}/*! Returns the weight of the font that has family \a family and style \a style. If there is no such family and style combination, returns -1. \sa italic(), bold()*/int QFontDatabase::weight(const QString &family, const QString &style) const{ QString familyName, foundryName; parseFontName(family, foundryName, familyName); ::load(familyName); QtFontFoundry allStyles(foundryName); QtFontFamily *f = d->family(familyName); if (!f) return -1; for (int j = 0; j < f->count; j++) { QtFontFoundry *foundry = f->foundries[j]; if (foundryName.isEmpty() || ucstricmp(foundry->name, foundryName) == 0) { for (int k = 0; k < foundry->count; k++) allStyles.style(foundry->styles[k]->key, true); } } QtFontStyle::Key styleKey(style); QtFontStyle *s = allStyles.style(styleKey); return s ? s->key.weight : -1;}/*! Returns the names the \a writingSystem (e.g. for displaying to the user in a dialog).*/QString QFontDatabase::writingSystemName(WritingSystem writingSystem){ const char *name = 0; switch (writingSystem) { case Any: name = "Any"; break; case Latin: name = "Latin"; break; case Greek: name = "Greek"; break; case Cyrillic: name = "Cyrillic"; break; case Armenian: name = "Armenian"; break; case Hebrew: name = "Hebrew"; break; case Arabic: name = "Arabic"; break; case Syriac: name = "Syriac"; break; case Thaana: name = "Thaana"; break; case Devanagari: name = "Devanagari"; break; case Bengali: name = "Bengali"; break; case Gurmukhi: name = "Gurmukhi"; break; case Gujarati: name = "Gujarati"; break; case Oriya: name = "Oriya"; break; case Tamil: name = "Tamil"; break; case Telugu: name = "Telugu"; break; case Kannada: name = "Kannada"; break; case Malayalam: name = "Malayalam"; break; case Sinhala: name = "Sinhala"; break; case Thai: name = "Thai"; break; case Lao: name = "Lao"; break; case Tibetan: name = "Tibetan"; break; case Myanmar: name = "Myanmar"; break; case Georgian: name = "Georgian"; break; case Khmer: name = "Khmer"; break; case SimplifiedChinese: name = "Simplified Chinese"; break; case TraditionalChinese: name = "Traditional Chinese"; break; case Japanese: name = "Japanese"; break; case Korean: name = "Korean"; break; case Vietnamese: name = "Vietnamese"; break; case Other: name = "Other"; break; default: Q_ASSERT_X(false, "QFontDatabase::writingSystemName", "invalid 'writingSystem' parameter"); break; } return qApp ? qApp->translate("QFont", name) : QString::fromLatin1(name);}/*! Returns a string with sample characters from \a writingSystem.*/QString QFontDatabase::writingSystemSample(WritingSystem writingSystem){ QString sample = QString::fromLatin1("AaBb"); switch (writingSystem) { case Any: case Other: // show only ascii characters sample += "YyzZ"; break; case Latin: // This is cheating... we only show latin-1 characters so that we don't // end up loading lots of fonts - at least on X11... sample += QChar(0x00C3); sample += QChar(0x00E1); sample += "Zz"; break; case Greek: sample += QChar(0x0393); sample += QChar(0x03B1); sample += QChar(0x03A9); sample += QChar(0x03C9); break; case Cyrillic: sample += QChar(0x0414); sample += QChar(0x0434); sample += QChar(0x0436); sample += QChar(0x0402); break; case Armenian: sample += QChar(0x053f); sample += QChar(0x054f); sample += QChar(0x056f); sample += QChar(0x057f); break; case Hebrew: sample += QChar(0x05D0); sample += QChar(0x05D1); sample += QChar(0x05D2); sample += QChar(0x05D3); break; case Arabic: sample += QChar(0x0628); sample += QChar(0x0629); sample += QChar(0x062A); sample += QChar(0x063A); break; case Syriac: sample += QChar(0x0715); sample += QChar(0x0725); sample += QChar(0x0716); sample += QChar(0x0726); break; case Thaana: sample += QChar(0x0784); sample += QChar(0x0794); sample += QChar(0x078c); sample += QChar(0x078d); break; case Devanagari: sample += QChar(0x0905); sample += QChar(0x0915); sample += QChar(0x0925); sample += QChar(0x0935); break; case Bengali: sample += QChar(0x0986); sample += QChar(0x0996); sample += QChar(0x09a6); sample += QChar(0x09b6); break; case Gurmukhi: sample += QChar(0x0a05); sample += QChar(0x0a15); sample += QChar(0x0a25); sample += QChar(0x0a35); break; case Gujarati: sample += QChar(0x0a85); sample += QChar(0x0a95); sample += QChar(0x0aa5); sample += QChar(0x0ab5); break; case Oriya: sample += QChar(0x0b06); sample += QChar(0x0b16); sample += QChar(0x0b2b); sample += QChar(0x0b36); break; case Tamil: sample += QChar(0x0b89); sample += QChar(0x0b99); sample += QChar(0x0ba9); sample += QChar(0x0bb9); break; case Telugu: sample += QChar(0x0c05); sample += QChar(0x0c15); sample += QChar(0x0c25); sample += QChar(0x0c35); break; case Kannada: sample += QChar(0x0c85); sample += QChar(0x0c95); sample += QChar(0x0ca5); sample += QChar(0x0cb5); break; case Malayalam: sample += QChar(0x0d05); sample += QChar(0x0d15); sample += QChar(0x0d25); sample += QChar(0x0d35); break; case Sinhala: sample += QChar(0x0d90); sample += QChar(0x0da0); sample += QChar(0x0db0); sample += QChar(0x0dc0); break; case Thai: sample += QChar(0x0e02); sample += QChar(0x0e12); sample += QChar(0x0e22); sample += QChar(0x0e32); break; case Lao: sample += QChar(0x0e8d); sample += QChar(0x0e9d); sample += QChar(0x0ead); sample += QChar(0x0ebd); break; case Tibetan: sample += QChar(0x0f00); sample += QChar(0x0f01); sample += QChar(0x0f02); sample += QChar(0x0f03); break; case Myanmar: sample += QChar(0x1000); sample += QChar(0x1001); sample += QChar(0x1002); sample += QChar(0x1003); break; case Georgian: sample += QChar(0x10a0); sample += QChar(0x10b0); sample += QChar(0x10c0); sample += QChar(0x10d0); break; case Khmer: sample += QChar(0x1780); sample += QChar(0x1790); sample += QChar(0x17b0); sample += QChar(0x17c0); break; case SimplifiedChinese: sample += QChar(0x4e2d); sample += QChar(0x6587); sample += QChar(0x8303); sample += QChar(0x4f8b); break; case TraditionalChinese: sample += QChar(0x4e2d); sample += QChar(0x6587); sample += QChar(0x7bc4); sample += QChar(0x4f8b); break; case Japanese: sample += QChar(0x3050); sample += QChar(0x3060); sample += QChar(0x30b0); sample += QChar(0x30c0); break; case Korean: sample += QChar(0xac00); sample += QChar(0xac11); sample += QChar(0xac1a); sample += QChar(0xac2f); break; case Vietnamese: break; default: break; } return sample;}void QFontDatabase::parseFontName(const QString &name, QString &foundry, QString &family){ ::parseFontName(name, foundry, family);}void QFontDatabase::createDatabase(){ initializeDb(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -