Introducción

Uno de los factores que causa mayor impacto en los usuarios al evaluar un software es su interfaz. Si bien es posible cumplir con todos los requerimientos exigidos por el cliente utilizando como nexo humano-máquina un intérprete de comandos (consola o terminal), un importante porcentaje de usuarios no se relaciona comúnmente con este método, por lo que se genera un aprendizaje lento y poco intuitivo, lo que puede derivar en la no utilización de la aplicación desarrollada, llevando al fracaso al proyecto [1, sección 1]. Producto de lo anterior, los diseñadores de software buscan generar interfaces de usuario (UI) sencillas e intuitivas, siendo importante considerar su presentación, la interacción con el usuario y la semántica (significado) asociada a ella. Si bien en primera instancia, un usuario evalúa la presentación de la interfaz (la que no debe sobrecargarse), posteriormente cobra relevancia su facilidad de uso (interacción), por lo que, con el propósito de mejorar la adaptación del usuario al software, se agrega semántica a los objetos que la componen. Un ejemplo de esto es la metáfora ligada al espacio principal de trabajo en sistemas operativos (Linux, Mac OS, Windows), el que es asociado a un escritorio [2, sección 1]. Dada la importancia de contar con un buen diseño al implementar la UI, se han generado principios para guiar su desarrollo y métricas para evaluar su funcionamiento [2, secciones 2 y 3], permitiendo crear interfaces cada vez más ``amigables'' al usuario, siendo ampliamente utilizadas las UI's gráficas (GUI's).

Puesto que el diseño de una interfaz de fácil aprendizaje (intuitiva, fácil interacción, etc.), buena apariencia y funcional forma parte importante del éxito de una aplicación, se han implementado diversas utilidades para desarrollar de manera sencilla GUI's que cumplan con estas características, reduciendo el tiempo y el esfuerzo por parte del grupo desarrollador. Una de ellas es la estudiada en este trabajo, el framework Qt, el que es introducido en la sección 2. Su instalación es explicada en la sección 3, mostrando como proceder en sistemas Linux y Windows. Como una forma de aclarar los conceptos asociados a su utilización, en el apartado 4 se explica su funcionamiento a través de código, para luego, en el apartado 5, utilizar las herramientas gráficas disponibles para agilizar el desarrollo, todo mediante ejemplos. Posterior a esto, en la sección 6 se crean dos aplicaciones que incluyen a los ejemplos explicados previamente y agregan una mayor complejidad, concluyendo con la sección 7, en la que se entrega la síntesis del trabajo realizado. Además, se adjunta a este trabajo el código para implementar la última aplicación de ejemplo.

Cristian Duran-Faundez 2013-07-23