【问题标题】:Change font of contents in QTextEdit from my application resource从我的应用程序资源中更改 QTextEdit 中内容的字体
【发布时间】:2017-04-06 11:56:09
【问题描述】:

我的 Qt 应用程序中有 Qt 资源文件 (res.qrc)。我在资源中导入了我的自定义字体,如下所示:

:/fonts/aa_marcus_east_syriac.ttf

我也在头文件中定义:

private:
    QFont assyrianEventsAAMarcusEastSyriac;

我在主窗口中使用了 QTextEdit。当用户单击一个按钮时,我的应用程序会读取一个文本文件。文本文件中的每一行都应该在 QTextEdit 中导入,但有些行应该是我的资源中的 aa_marcus_east_syriac.ttf 字体。所以我写了这段代码:

void Widget::readMonthAssyrianEvents()
{
    QStringList eventsList;
    eventsList = readEventFile();

    ui->notificationTextEdit->setCurrentFont(assyrianEventsAAMarcusEastSyriac);

    for (int index = 0; index < eventsList.length(); index++)
    {
        QString eventType, eventContent;
        QStringList tempStringList = eventsList[index].split('|');

        eventType = tempStringList[0];
        eventContent = tempStringList[1];

        if (eventType == "0")
            ui->notificationTextEdit->append(eventContent);
    }
}

readEventFile() 函数工作正常。它读取文本文件并将所有行作为 QStringList。在另一个名为 init() 的函数中初始化的“assyrianEventsAAMarcusEastSyriac”变量。这是 init() 函数:

int id = QFontDatabase::addApplicationFont(":/fonts/aa_marcus_east_syriac.ttf");
QString family = QFontDatabase::applicationFontFamilies(id).at(0);
assyrianEventsAAMarcusEastSyriac.setFamily(family);
assyrianEventsAAMarcusEastSyriac.setPointSize(20);

我的问题是 QTextEdit 不会将其内容的字体更改为我的自定义字体。

我该如何解决这个问题?请帮帮我。 谢谢

【问题讨论】:

    标签: qt qt5.7


    【解决方案1】:

    我认为错误在

    QString family = QFontDatabase::applicationFontFamilies(id).at(0);
    

    您是否检查过 .at(0) 实际上是您的自定义字体?

    您很可能可以通过调用 assyrianEventsAAMarcusEastSyriac.setFamily 来解决此问题 使用字体系列的明确字符串,就像

    assyrianEventsAAMarcusEastSyriac.setFamily("Marcus East Syriac");
    

    如果这也不起作用,则可能是您的自定义字体格式不正确或未提供字体系列名称。因此,我建议您先尝试使用工作字体,然后最终返回自定义内容。

    【讨论】:

    • 这适用于另一个应用程序,因为我使用这种字体和 QFontDatabase 用于普通标签(QLabel)并且在那里工作正常但对于 QTextEdit 它不起作用:-(
    • 如果你只调用 QTextEdit::setFontFamily 会发生什么?
    猜你喜欢
    • 2020-03-01
    • 2017-12-03
    • 2015-12-19
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多