c++ - Qt-从资源中添加自定义字体

标签 c++ qt fonts

我将此字体添加到资源中:BYekan.ttf
我想在我的应用程序中使用这种字体。我试过这个:

    QFont font(":/images/font/BYekan.ttf");
    nLabel->setFont(font);
    nLabel->setText(tr("This is for test"));
    layout->addWidget(nLabel);

但是,我想它不起作用。怎么用?

编辑: 看完this question ,我又试了一次:

int fontID(-1);
bool fontWarningShown(false);
QFile res(":/images/font/Yekan.ttf");
if (res.open(QIODevice::ReadOnly) == false) {
    if (fontWarningShown == false) {
        QMessageBox::warning(0, "Application", (QString)"Impossible d'ouvrir la police " + QChar(0x00AB) + " DejaVu Serif " + QChar(0x00BB) + ".");
        fontWarningShown = true;
    }
}else {
    fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
    if (fontID == -1 && fontWarningShown == false) {
        QMessageBox::warning(0, "Application", (QString)"Impossible d'ouvrir la police " + QChar(0x00AB) + " DejaVu Serif " + QChar(0x00BB) + ".");
        fontWarningShown = true;

    }
    else
        nLabel->setFont(QFont(":/images/font/Yekan.ttf", 10));
}

我比较了这个字体和其他字体,但在 Qt 上并没有什么不同。为什么?

最佳答案

int id = QFontDatabase::addApplicationFont(":/fonts/monospace.ttf");
QString family = QFontDatabase::applicationFontFamilies(id).at(0);
QFont monospace(family);

关于c++ - Qt-从资源中添加自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30973781/

相关文章:

javascript - 如何更改图表字体颜色

html - 如何使字体出现在所有设备上?

azure - Azure CDN 上的 ttf 字体文件出现 CORS 错误

c++ - 为什么这个int会随机变成一个巨大的负值?

c++ - 多重虚拟继承中的虚拟表和内存布局

c++ - vim c++ 模板编写

c++ - 为什么这个简单的 Qt 应用程序没有链接

c++ - MinGW 上的 localtime_r 支持

c++ - 返回常量 char 指针会产生错误

qt - 拖放项目时滚动项目