Я занимаюсь разработкой qml-приложения и хочу разместить значки на кнопках. Я хотел бы использовать стандартные значки Ubuntu, чтобы получить настоящий вид Ubuntu для моего приложения. Как я могу это сделать?
Официальная тема иконки Ubuntu Touch называется Ubuntu Mobile и доступна для установки в пакете ubuntu-mobile-icons
. Вот пример предоставленных иконок:
Чтобы использовать иконки в вашем коде, просто используйте путь к иконке. Например, чтобы установить иконку в кнопку панели инструментов, сделайте что-нибудь подобное:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/reload.svg")
}
Чтобы избежать необходимости повторять путь корня снова и снова, я обычно использую небольшую функцию getIcon
, которая возвращает реальный путь к иконке:
function getIcon(name) {
return Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/" + name + ".svg")
}
Предыдущий пример был бы:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: getIcon("reload")
}
Я только начал заниматься QML, но похоже, что Ubuntu SDK предоставляет способ доступа к значкам из темы, компонент Icon. Вот пример Hello Worldish:
import QtQuick 2.0
import Ubuntu.Components 0.1
MainView {
id: root
objectName: "mainView"
width: units.gu(50)
height: units.gu(75)
property real margins: units.gu(2)
property real buttonWidth: units.gu(9)
Page {
title: i18n.tr("Icons!")
Column {
anchors {
fill: parent
margins: root.margins
}
spacing: units.gu(1)
Icon {
name: "call-start"
width: 48
height: 48
}
Icon {
name: "call-stop"
width: 48
height: 48
}
Icon {
name: "find"
width: 48
height: 48
}
}
}
}
Это дает вам:
AFAICT, на самом деле, похоже, что это не поддерживает полный набор значков, предоставляемых спецификацией темы значков Freedesktop .....
Тема по умолчанию для мобильного Ubuntu - Suru, а значки расположены в / usr / share / icons / suru
Любой из значков можно использовать по имени. Даже значки за пределами набора значков Suru.
Если файл имеет вид /usr/share/icons/suru/actions/scalable/like.svg
Код может быть таким:
Action {
id: likeAction
iconName: "like" // the files name without file ending
text: "I like this"
}
Что дает вам действие кнопка со значком сердца.