私はqml-appを開発していますが、ボタンにアイコンを配置したいと思います。 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 component。 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 Icon Theme Specificationで提供されるアイコンの完全なセットをサポートしていないようです。
UbuntuモバイルのデフォルトテーマはSuruで、アイコンは/usr/share/icons/suru
にあります
任意のアイコンを名前で使用できます。スルアイコンセット以外のアイコンも。
ファイルが/usr/share/icons/suru/actions/scalable/like.svg
の場合
コードは次のとおりです。
Action {
id: likeAction
iconName: "like" // the files name without file ending
text: "I like this"
}
ハート型のアイコンが付いたアクションボタンが表示されます。