如何在QML中使用Font Awesome

问题描述 投票:-3回答:2

有谁知道如何在QML中使用Font Awesome?我找不到任何文档或任何有关如何在QML中使用Font Awesome的信息。

qml font-awesome
2个回答
3
投票

我喜欢做的是使用fontello创建一组最小的图标,而不是从FontAwesome下载整个集合。使用texteditor示例作为参考:

  1. 下载字体并将其存储在项目目录中的某个位置。在示例中,它位于fonts文件夹中。
  2. 如果您在项目中使用.qrc文件,请将其添加到one of those
  3. 我可以想到两种方法可以在QML中识别字体:FontLoaderQFontDatabase::addApplicationFont()。要使用QFontDatabase::addApplicationFont(),请在加载应用程序的QML之前添加this代码: QFontDatabase fontDatabase; if (fontDatabase.addApplicationFont(":/fonts/fontello.ttf") == -1) qWarning() << "Failed to load fontello.ttf";
  4. Unicode codestext属性中使用whatever item,你想在下面显示图标: ToolButton { id: openButton text: "\uF115" // icon-folder-open-empty font.family: "fontello" onClicked: openDialog.open() }

1
投票

这里有一个解决方案:https://martin.rpdev.net/2018/03/30/using-fontawesome-5-in-qml.html

我亲自把它和qazxsw poi混在一起给了我这个:

this solution for FontAwesome 4.7

Item { id: awesome property alias icons: variables readonly property FontLoader fontAwesomeRegular: FontLoader { source: "./fa-regular-400.ttf" } readonly property FontLoader fontAwesomeSolid: FontLoader { source: "./fa-solid-900.ttf" } readonly property FontLoader fontAwesomeBrands: FontLoader { source: "./fa-brands-400.ttf" } readonly property string regular: fontAwesomeRegular.name readonly property string solid: fontAwesomeSolid.name readonly property string brands: fontAwesomeBrands.name Awesome.Variables { id: variables } } 是另一个文件,我将图标名称与他们的字符代码链接起来。这是一段摘录:

Awesome.Variables

为了使用它,我将它加载到我的根QtObject { readonly property string fa_500px : "\uf26e" readonly property string fa_accessible_icon : "\uf368" readonly property string fa_accusoft : "\uf369" readonly property string fa_address_book : "\uf2b9" readonly property string fa_address_card : "\uf2bb" } ,或者在我需要这样的图标的地方:

Item

然后像这样使用它:

FontAwesome {
     id: awesome
}
© www.soinside.com 2019 - 2024. All rights reserved.