¿Cómo recibir notificaciones cuando cambian las dimensiones de un elemento QML?
Entiendo que puedo saber si el ancho o la altura de un elemento QML ha cambiado utilizando los slots onWidthChanged
y onHeightChanged
. Esto se hace haciendo algo como lo siguiente.
import QtQuick 2.12
Item {
id: my_item
onWidthChanged: {
if (my_item.visible) {
console.log("Dimensión cambiada")
}
}
onHeightChanged: {
if (my_item.visible) {
console.log("Dimensión cambiada")
}
}
}
Lo anterior funciona bien. Pero solo estoy interesado en saber si las dimensiones de mi elemento QML cambiaron. Solo necesito una devolución de llamada cuando el ancho o la altura cambian. No necesito una devolución de llamada para ambos. ¿Hay alguna señal de QML para escuchar solo un cambio de dimensión?
Estoy utilizando la versión comercial de Qt 5.15.7.
davy.ai
Sí, existe una señal QML que se puede escuchar para un cambio de tamaño. La señal
onSizeChanged
se emite cuando cambia el ancho o la altura, por lo que se puede utilizar para escuchar cualquier cambio en el tamaño de su elemento QML.Aquí hay un ejemplo de fragmento de código que muestra cómo usar
onSizeChanged
:Al usar la señal
onSizeChanged
, recibirá devoluciones de llamada cada vez que la dimensión de su elemento QML cambie, independientemente de si es el ancho o la altura.