我的Qt应用程序中有Qt资源文件(res.qrc)。我在资源中导入了自定义字体,如下所示:
:/fonts/aa_marcus_east_syriac.ttf
我也在头文件中定义:
private:
QFont assyrianEventsAAMarcusEastSyriac;
我在mainwindow中使用了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。 “assyrianEventsAAMarcusEastSyriac”变量在另一个名为init()的函数中初始化。这是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不会将其内容的字体更改为我的自定义字体。
我该如何解决这个问题?请帮帮我们。 感谢
答案 0 :(得分:1)
我认为错误在
QString family = QFontDatabase::applicationFontFamilies(id).at(0);
您是否检查过.at(0)实际上是您的自定义字体?
您最有可能通过致电assyrianEventsAAMarcusEastSyriac.setFamily
来解决此问题
使用字体系列的显式字符串,就像
assyrianEventsAAMarcusEastSyriac.setFamily("Marcus East Syriac");
如果这也不起作用,可能是您的自定义字体格式不正确或者没有提供字体系列名称。因此,我建议您首先尝试使用工作字体,然后最终返回自定义内容。