Ich entwickle eine qml-App und möchte Symbole auf die Schaltflächen setzen. Ich möchte Ubuntu-Standardsymbole verwenden, um den echten Ubuntu-Look für meine App zu erhalten. Wie kann ich das machen?
Ich entwickle eine qml-App und möchte Symbole auf die Schaltflächen setzen. Ich möchte Ubuntu-Standardsymbole verwenden, um den echten Ubuntu-Look für meine App zu erhalten. Wie kann ich das machen?
Antworten:
Das offizielle Ubuntu Touch-Symbolthema heißt Ubuntu Mobile und kann im ubuntu-mobile-icons
Paket installiert werden. Hier ist ein Beispiel der bereitgestellten Symbole:
Um die Symbole in Ihrem Code zu verwenden, verwenden Sie einfach den Pfad zum Symbol. Führen Sie beispielsweise Folgendes aus, um das Symbol in einer Symbolleistenschaltfläche festzulegen:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/reload.svg")
}
Um zu vermeiden, dass der Stammpfad immer wieder wiederholt werden muss, verwende ich normalerweise eine kleine Funktion namens, getIcon
die den tatsächlichen Pfad zu einem Symbol zurückgibt:
function getIcon(name) {
return Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/" + name + ".svg")
}
Das vorherige Beispiel wäre dann:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: getIcon("reload")
}
Ich habe gerade erst angefangen, mich mit QML zu beschäftigen, aber es sieht so aus, als ob das Ubuntu SDK eine Möglichkeit bietet, über das Thema, die Icon-Komponente , auf Symbole zuzugreifen . Hier ist ein Beispiel von 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
}
}
}
}
Dies gibt Ihnen:
AFAICT, dies scheint jedoch nicht den gesamten Satz von Symbolen zu unterstützen, die in der Freedesktop Icon Theme Specification bereitgestellt werden.
Das Standardthema für Ubuntu Mobile ist Suru und die Symbole befinden sich in /usr/share/icons/suru
Jedes der Symbole kann nach Namen verwendet werden. Sogar Symbole außerhalb des Suru-Symbolsatzes.
Wenn die Datei ist /usr/share/icons/suru/actions/scalable/like.svg
Der Code könnte sein:
Action {
id: likeAction
iconName: "like" // the files name without file ending
text: "I like this"
}
Dadurch erhalten Sie eine Aktionsschaltfläche mit einem Herzsymbol.