Estoy desarrollando una aplicación qml y quiero poner iconos en los botones. Me gustaría usar íconos estándar de ubuntu para obtener el aspecto real de ubuntu para mi aplicación. ¿Cómo puedo hacer esto?
Estoy desarrollando una aplicación qml y quiero poner iconos en los botones. Me gustaría usar íconos estándar de ubuntu para obtener el aspecto real de ubuntu para mi aplicación. ¿Cómo puedo hacer esto?
Respuestas:
El tema oficial del icono de Ubuntu Touch se llama Ubuntu Mobile, y está disponible para su instalación en el ubuntu-mobile-icons
paquete. Aquí hay una muestra de los íconos provistos:
Para usar los íconos en su código, simplemente use la ruta al ícono. Por ejemplo, para configurar el icono en un botón de la barra de herramientas, haga algo similar a esto:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/reload.svg")
}
Para evitar tener que repetir la ruta raíz una y otra vez, generalmente uso una pequeña función llamada getIcon
que devuelve la ruta real a un icono:
function getIcon(name) {
return Qt.resolvedUrl("/usr/share/icons/ubuntu-mobile/actions/scalable/" + name + ".svg")
}
El ejemplo anterior sería entonces:
ToolbarButton {
text: i18n.tr("Refresh")
iconSource: getIcon("reload")
}
Acabo de comenzar a incursionar en QML, pero parece que Ubuntu SDK proporciona una forma de acceder a los iconos del tema, el componente Icon. Aquí hay un ejemplo de 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
}
}
}
}
Esto te da:
AFAICT, esto en realidad no parece admitir el conjunto completo de iconos proporcionados por la especificación de tema de iconos de Freedesktop, aunque .....
El tema predeterminado para Ubuntu mobile es Suru y los íconos se encuentran en /usr/share/icons/suru
Cualquiera de los íconos se puede usar por nombre. Incluso iconos fuera del conjunto de iconos de Suru.
Si el archivo es /usr/share/icons/suru/actions/scalable/like.svg
El código podría ser:
Action {
id: likeAction
iconName: "like" // the files name without file ending
text: "I like this"
}
Lo que te da un botón de acción con un ícono de corazón.