QDataWidgetMapper y las propiedades

DataWidgetMapper en accion!QDataWidgetMapper es una clase muy útil. Te permite crear formularios ‘conscientes’, que cambian su contenido en consonancia con una vista o modelo. El QDataWidgetMapper enlaza una sección de un modelo (básicamente, una ‘columna’ de un registro) con un widget de tal forma que, al cambiar el registro activo en el dataWidgetMapper, cambia también el contenido de ese widget para representar dicha información.

En un principio (y con esto me remito a las primeras dos o tres versiones de Qt 4, de la 4.0 a la 4.2) siempre se conectaba de la misma forma a los widgets: sobre la propiedad ‘por defecto’ del widget (la propiedad marcada como USER por parte de la clase). A partir de la versión 4.3, nos permite conectar el widget mediante una propiedad especificada por nosotros mismos, lo cual es más cómodo e incluso más potente.

No obstante, QDataWidgetMapper sigue teniendo una característica que debemos vigilar muy de cerca: sólo permite conectar UN objeto con UNA propiedad y UNA sección del modelo. ¿Por qué resalto tanto la palabra UNA? Bien, podemos sentirnos tentados de crear un nuevo widget, añadirle propiedades hasta el infinito y más allá y conectar todas las secciones del modelo a ese widget. Y no funcionaría. Nos quedaríamos allí plantados, con cara de pasmarotes, rascándonos la cabeza mientras intentamosdescifrar qué es lo que ha pasado. Y es que este código no nos funciona:

[cce lang=”cpp-qt” tab_size=”2″]
mapeador->addMapping(this,0,”propiedad1″);
mapeador->addMapping(this,1,”propiedad2″);
[/cce]

Por intentar mapear un mismo widget dos veces. ¿Cual sería la forma correcta?

[cce lang=”cpp-qt” tab_size=”2″]
mapeador->addMapping(widget2,0,”propiedad1″);
mapeador->addMapping(widget1,1,”propiedad2″);
[/cce]

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s