qml-app-development 有标准图标吗?

Oli*_*hel 12 application-development ubuntu-touch

我正在开发一个 qml-app,我想在按钮上放置图标。我想使用 ubuntu 标准图标来为我的应用程序获取真正的 ubuntu 外观。我怎样才能做到这一点?

iBe*_*eve 8

官方的 Ubuntu Touch 图标主题称为 Ubuntu Mobile,可在ubuntu-mobile-icons包中安装。以下是提供的图标示例:

Ubuntu 移动操作图标

要在代码中使用图标,只需使用图标的路径。例如,要在工具栏按钮中设置图标,请执行类似以下操作:

ToolbarButton {
    text: i18n.tr("Refresh")
    iconSource: Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/reload.svg")
}
Run Code Online (Sandbox Code Playgroud)

为了避免一遍又一遍地重复根路径,我通常使用一个调用的小函数getIcon来返回图标的实际路径:

function getIcon(name) {
    return Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/" + name + ".svg")
}
Run Code Online (Sandbox Code Playgroud)

前面的示例将是:

ToolbarButton {
    text: i18n.tr("Refresh")
    iconSource: getIcon("reload")
}
Run Code Online (Sandbox Code Playgroud)

  • 这个答案需要更新。使用图标的正确和官方方式是, iconName: "reload" 或 iconSource: "image://theme/reload" (3认同)

and*_*ing 4

我才刚刚开始涉足 QML,但看起来 Ubuntu SDK 提供了一种从主题(图标组件)访问图标的方法。这是一个 Hello Worldish 示例:

\n\n
import QtQuick 2.0\nimport Ubuntu.Components 0.1\n\nMainView {\n    id: root\n    objectName: "mainView"\n\n    width: units.gu(50)\n    height: units.gu(75)\n\n    property real margins: units.gu(2)\n    property real buttonWidth: units.gu(9)\n\n    Page {\n        title: i18n.tr("Icons!")\n\n    Column {\n\n    \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0anchors {\n    \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0fill: parent\n    \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0margins: root.margins\n    \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n    \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0spacing: units.gu(1)\n\n        Icon {\n            name: "call-start"\n            width: 48\n            height: 48\n         }\n\n        Icon {\n            name: "call-stop"\n            width: 48\n            height: 48\n         }\n\n        Icon {\n            name: "find"\n            width: 48\n            height: 48\n        }\n\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这给你:

\n\n

qml-图标-hello-world

\n\n

AFAICT,这实际上似乎并不支持 Freedesktop 图标主题规范提供的全套图标......

\n