QtQuick Best Practices/es
Este artículo cubre que no hacer o que no es aconsejable (malas prácticas), cuando se desarrolla con Qt Quick es. Los temas están comentados por desarrolladores que han cometido o visto estos errores comunes durante su trabajo. Por favor, añade tus recomendaciones y ayuda a que la página crezca.
Malas prácticas con Qt Quick
Tamaños y posiciones fijas
Como el código Qt Quick puede ejecutarse en dispositivos con resoluciones variadas, es importante permitir que tu aplicación escale arriba o abajo. Incluso si tienes fijo una determinada resolución para la plataforma (p.e. 640x360 en Symbian), dispositivos futuros pueden ser publicados con resoluciones diferentes o podrías acabar necesitando soportar una plataforma diferente. Diciendo esto, muchas aplicaciones puede que no sean apropiadas para escalar a un escritorio completo o escalar hacia un dispositivo móvil.
Otro ejemplo de tener tamaños dinámicos es que puedes decidir después cambiar su tamaño a través de una función, o de otra manera, las posiciones y tamaños de tu disposición cambiarán dinámicamente tambén. Este ejemplo debajo demuestra ese problema.
Cuando se centra un elemento:
<br />Item {<br /> width: 200; height: 200 //<— El elemento más exterior escala al tamaño de la ventana de QMLviewer<br /> Rectangle {<br /> x: 50; y: 50 //<— No!<br /> width: 100; height: 100 //<— No!<br /> color: "red"<br /> // Después decides añadir una animación<br /> Behavior on width { NumberAnimation { duration: 500 } }<br /> MouseArea {<br /> anchors.fill: parent<br /> onPressed: parent.width = 150;<br /> }<br /> }<br />}<br />
El ejemplo anterior no estará centrado al ser clicado. Si fijas "x" a 25, la animación no funcionará correctamente
En este caso deberías usar en su lugar:anchors.centerIn: parent
en la línea 4, y así será capaz de identificar el centro por ti, y evita problemas cuando se cambie el ancho o alto en el futuro
Qt Quick maneja el código multiplataforma por ti, y depende de ti si tu código es multiresolución
Ver también
* Qt_Quick_Best_Practices es