Cómo usar temas en QML para Ubuntu Phone

10

La Documentación de Ubuntu Interface Toolkit documenta Theming for QML Elements con una sintaxis bastante similar a CSS. A mí me suena increíble, pero no puedo comenzar con eso. He intentado mucho pero supongo que me faltan respuestas a algunas preguntas fundamentales:

  1. ¿Existen reglas sobre dónde colocar los archivos .qmltheme y cómo nombrarlos?
  2. ¿Cómo se hace la referencia? ¿Las reglas de estilo que establezco en el archivo .qmltheme se agregarán automáticamente al elemento que tenga el nombre respectivo establecido? ¿O tengo que establecer de alguna manera una referencia en el archivo .qmltheme al archivo que contiene el elemento QML, o al revés, o ambos?

Quizás no entendí una parte importante de la documentación. El inglés no es mi lengua materna y, por lo tanto, esta documentación específica es difícil de obtener para mí.

Joshua Gleitze
fuente

Respuestas:

4

Lamentablemente, la documentación no explica cómo deberían ser temáticas las aplicaciones, especialmente porque esta parte no está completamente implementada. Sin embargo, las aplicaciones aún pueden cargar archivos de tema donde alteran los estilos definidos por el sistema y especifican los propios.

  1. Todavía no hay una regla específica donde colocar el archivo de tema específico de la aplicación. Sin embargo, debe estar en un lugar que la aplicación conozca y pueda acceder. El tema se puede cargar usando la Theme.loadTheme(url)función, donde urlestá la URL / URI del .qmlthemearchivo. Por ejemplo, suponiendo que el archivo de tema esté en la carpeta "tema" en relación con la carpeta de la aplicación, debería tenerTheme.loadTheme(Qt.resolvedUrl("./theme/mytheme.qmltheme"))

  2. No estoy seguro de entender lo que quisiste decir con "referencia" aquí. ¿Se refiere a cómo un componente con estilo sabrá qué estilo usar, o se refiere a cómo los elementos QML que proporcionan las imágenes se vincularán al componente con estilo?

zsombi
fuente
1
TypeError: Property 'loadTheme' of object UCTheme(0x7fc01c4ce980) is not a function¿Es este un experimento que ha llegado a su fin, o deberíamos esperar que esto funcione en el futuro? Los únicos restos de los documentos parecen ser people.canonical.com/~dpm/sdk-docs/html.orig/…
andrewsomething