在我的qrc
文件中,我有以下字体:
如果我在操作系统上安装它们(这里是Windows),我可以使用以下名称在QML
中调用它们:
import QtQuick.Controls 2.0
Label {
id: label
font.family: "Universalis ADF Std"
}
但如果他们没有安装,我仍然希望将它们提供给我的QML
文件。
当然,使用QFontDatabase
逐个添加字体有效:
QDir dir{"path/to/fonts"};
for (auto file : dir.entryList(QDir::Files))
{
if (QFontDatabase::addApplicationFont("path/to/fonts/" + file))
std::cerr << "Fail to add font " << file << std::endl;
}
但是我无法用#34; Universalis ADF Std&#34;来召集整个小组。请注意,C++
部分在加载QML
文件之前发生。我怎么能这样做?
答案 0 :(得分:1)
感谢peppe的帖子,我意识到我制作的代码是有效的。我忘记了在Windows上安装和卸载字体后需要重新启动计算机。它搞乱了我的程序,因为我真的不知道字体是否正确加载。总结一下:
font.family: "Universalis ADF Std"