QtQuick Best Practices/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:
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.
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 /><code><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 /></code><br />El ejemplo anterior no estará centrado al ser clicado. Si fijas "x" a 25, la animación no funcionará correctamente
Cuando se centra un elemento:
<code>
Item {
width: 200; height: 200 //<— El elemento más exterior escala al tamaño de la ventana de QMLviewer
Rectangle {
x: 50; y: 50 //<— No!
width: 100; height: 100 //<— No!
color: "red"
// Después decides añadir una animación
Behavior on width { NumberAnimation { duration: 500 } }
MouseArea {
anchors.fill: parent
onPressed: parent.width = 150;
}
}
}
</code>
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:<br /><code>anchors.centerIn: parent<code><br />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
En este caso deberías usar en su lugar:
<code>anchors.centerIn: parent<code>
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
Qt Quick maneja el código multiplataforma por ti, y depende de ti si tu código es multiresolución


=== Ver también<br />* [[Qt_Quick_Best_Practices es]] ===
=== Ver también
* [[Qt_Quick_Best_Practices es]] ===

Revision as of 11:33, 25 February 2015


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:

Item {
 width: 200; height: 200 //<— El elemento más exterior escala al tamaño de la ventana de QMLviewer
 Rectangle {
 x: 50; y: 50 //<— No!
 width: 100; height: 100 //<— No!
 color: "red"
 // Después decides añadir una animación
 Behavior on width { NumberAnimation { duration: 500 } }
 MouseArea {
 anchors.fill: parent
 onPressed: parent.width = 150;
 }
 }
}

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