⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qfontdatabase.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#else    bool smoothScalable = false;    QString familyName, foundryName;    parseFontName(family, foundryName, familyName);    ::load(familyName);    QtFontStyle::Key styleKey(style);    QList<int> sizes;    QtFontFamily *fam = d->family(familyName);    if (!fam)        return sizes;#ifdef Q_WS_X11    int dpi = QX11Info::appDpiY();#else    const int dpi = qt_defaultDpiY(); // embedded#endif    for (int j = 0; j < fam->count; j++) {        QtFontFoundry *foundry = fam->foundries[j];        if (foundryName.isEmpty() || foundry->name.compare(foundryName, Qt::CaseInsensitive) == 0) {            QtFontStyle *style = foundry->style(styleKey);            if (!style) continue;            if (style->smoothScalable) {                smoothScalable = true;                goto end;            }            for (int l = 0; l < style->count; l++) {                const QtFontSize *size = style->pixelSizes + l;                if (size->pixelSize != 0 && size->pixelSize != USHRT_MAX) {                    const uint pointSize = qRound(size->pixelSize * 72.0 / dpi);                    if (! sizes.contains(pointSize))                        sizes.append(pointSize);                }            }        }    } 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() || foundry->name.compare(foundryName, Qt::CaseInsensitive) == 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() ||            foundry->name.compare(foundryName, Qt::CaseInsensitive) == 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() ||            foundry->name.compare(foundryName, Qt::CaseInsensitive) == 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 = QT_TRANSLATE_NOOP("QFontDatabase", "Any");        break;    case Latin:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Latin");        break;    case Greek:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Greek");        break;    case Cyrillic:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Cyrillic");        break;    case Armenian:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Armenian");        break;    case Hebrew:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Hebrew");        break;    case Arabic:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Arabic");        break;    case Syriac:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Syriac");        break;    case Thaana:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Thaana");        break;    case Devanagari:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Devanagari");        break;    case Bengali:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Bengali");        break;    case Gurmukhi:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Gurmukhi");        break;    case Gujarati:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Gujarati");        break;    case Oriya:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Oriya");        break;    case Tamil:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Tamil");        break;    case Telugu:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Telugu");        break;    case Kannada:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Kannada");        break;    case Malayalam:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Malayalam");        break;    case Sinhala:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Sinhala");        break;    case Thai:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Thai");        break;    case Lao:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Lao");        break;    case Tibetan:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Tibetan");        break;    case Myanmar:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Myanmar");        break;    case Georgian:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Georgian");        break;    case Khmer:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Khmer");        break;    case SimplifiedChinese:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Simplified Chinese");        break;    case TraditionalChinese:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Traditional Chinese");        break;    case Japanese:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Japanese");        break;    case Korean:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Korean");        break;    case Vietnamese:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Vietnamese");        break;    case Symbol:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Symbol");        break;    case Ogham:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Ogham");        break;    case Runic:        name = QT_TRANSLATE_NOOP("QFontDatabase", "Runic");        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;    switch (writingSystem) {    case Any:    case Symbol:        // show only ascii characters        sample += QLatin1String("AaBbzZ");        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 = QLatin1String("Aa");        sample += QChar(0x00C3);        sample += QChar(0x00E1);        sample += QLatin1String("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 += QC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -