Capítulo 7. Extendiendo la Funcionabilidad Mediante Dialogos

En este capitulo veremos como cambiar el color del fondo del Canvas, empleando el concepto de “accion” y un dialogo estandar de Qt.

Acciones

Una accion es un evento de usuario que puede ser “generado” a partir de diferentes instancias. Por ejemplo, considera la accion estandar “save”, la accion puede ser generada por el usuario de varias maneras: desde el menu “file” o desde el correspondiente icono en el toolbar. Pues nosotros vamos a: 1. Agregar un menu nuevo y un nuevo item en el (automaticamente se va a crear la accion correspondiente), 2. Asociar la accion a un nuevo slot de la forma, encargado de ejecutar el dialogo estandar de edicion de colores de Qt (observa que esto es mas general que asociar por ejemplo el item del menu al slot). Es mucho mas facil de lo que parece. Asi que primero creemos el nuevo menu y el nuevo item, del modo indicado:

Nuevo menu: nuevo item

Editemos el nombre de la accion recien creada, por uno mas sugestivo:

Dando un nombre a la accion

Ahora vamos a crear un nuevo slot, en el menu Edit->Slots:

Agregando un nuevo slot: edit

Demosle un nombre sugestivo a nuestro Slot:

Agregando un nuevo slot: menu-dialogo

Editemos el slot recien creado en la el fichero myeditor.ui.h (que ya sabemos como invocar: picando dos veces seguidas la forma principal) con la siguiente linea de codigo:

Implementando el slot: form.ui.h

Surge un nuevo detalle: debemos incluir en la forma el fichero de cabecera correspondiente a la clase QColorDialog de la cual acabamos de solitar su metodo estatico getColor() (que ejecuta el anhelado dialogo ;-) Para incluir el fichero piquemos con el boton derecho del raton la myeditor.ui.h e invoquemos el item indicado:

include file: dialog

Se ejecuta el siguiente dialogo donde podemos incluir el fichero:

include file: editing the dialog

El fichero tambien lo hubieramos podido inclui en el tab members que aparece a la derecha del designer:

include file: editing the dialog: resultado en "members" tab

Para conectar la accion con el slot recien implementado, picamos con el boton derecho la accion y ejecutamos el item indicado:

connect the action: right click

El resto ya lo conocemos: primero aparece el dialog de conecciones:

connect the action: dialog

Luego finalmente, efectuamos la coneccion deseada:

connect the action: dialog (2a parte)

El Resultado Final

Despues de salvar todo, volver a compilar y ejecutar, podemos ejecutar la aplicacion y el nuevo dialogo:

ejecutando el QColorDialog

El resultado de ejecutar el dialogo previo es:

ejecutando: resultado de aplicar el QColorDialog