La mejor libreria grafica para C++

Logo de c++

Poco tiempo después de empezar a aprender C++ cuando ya se entienden los fundamentos de la programación, es normal que todo estudiante curioso se pregunte como elaborar un software apto para la venta y la comercialización hacia usuarios no informáticos, siendo que sinceramente ningún usuario en el hogar o incluso en el ambiente laboral va a perder su tiempo colocando comandos en un software creado para ser usado en la línea de comandos, los usuarios lo que quieren son ventanas de fácil operación con botones, menús, campos de texto para escribir en ellos y radiobuttons para seleccionar entre varias opciones, es así como para poder programar más que por un pasatiempo necesitaremos crear interfaces gráficas para nuestros programas.

Interfaz grafica para C++ GUI

Cuál es la mejor librería grafica de C++?



Depende del punto de medición, ¿a que llamamos mejor?, quiza sea a la más fácil de leer y aprender?, porque de ser así nada más fácil que descargarnos Visual Studio y programar la ventana grafica en Visual C++, aunque un estudiante que está aprendiendo C++ en lugar de solo Python o solo Java porque entiende la diferencia entre potencial y facilidad no suele inclinarse hacia lo fácil y limitado, ¿será quizá que con mejor nos referimos a la más completa?, con la que podamos hacer todo tipo de controladores, personalizar sus colores, formas, funcionamiento, mensajes, listados de opciones y tantas otras cosas más, de ser así entonces no existe ni una sola librería para Windows mejor que la propia Winapi.

Como su nombre lo indica Winapi es la api de Windows, creada por Microsoft y a partir de ahí otras librerías como Wxwidgets o AWT (librería grafica de Java) hacen uso de Winapi para crear sus ventanas y con la que podemos hacer literalmente cualquier tipo de ventana, el límite es la imaginación y el conocerla bien.

Tenga en cuenta que si viene de otros lenguajes como el Python o el Java, sin duda le puede parecer que es muy difícil por la cantidad de cosas que hay que configurar en ella, pero de hecho lo que más lleva código es crear la ventana en si misma, posterior a esto la creación de botones, campos de texto y resto de controles es mucho más sencillo que el crear la propia ventana, el consejo es que guarde un código básico para crear ventanas en Winapi como el que les he compartido y posteriormente copiarlo y pegarlo por un tiempo, mientras aprenden su sintaxis.

Problemas y contras de usar Winapi



El programador siempre ha tenido que escoger entre opciones difíciles que si C++ o Python, que si Visual Studio, Code blocks o DEVc++, poder hacer de todo con una librería no siempre es lo que se busca y es que el problema como era de sospecharse es que Winapi solo funciona en sistemas operativos Windows, pero Unix o los sistemas macOS utilizan sus propias librerías nativas, para solucionar este problema y crear lo que llamamos portabilidad (capacidad de un software para ejecutarse en varias plataformas) se crearon librerías como GTK y Wxwidgets, de estas dos la más recomendada es Wxwidgets porque además de poder ejecutar en macOS, Linux y Windows un programa compilado con ella también podremos usar Wxwidgets a futuro para programar en Python (wxpython), en Java (wx4j) y otros lenguajes mas por si tenemos pensado aprender algún otro.

Libreria grafica hecha con Wxwidgets

¿Qué tan dura es la decisión?



Teniendo en cuenta que los códigos que contienen estas librerías gráficas y que tendrán que aprenderse para poder crear las ventanas son cientos, por tanto se entiende que requerirán tiempo de aprendizaje para poder hacer más que una simple ventana con 5 botones y 1 campo de texto, queda claro que conviene hacer la elección con cuidado.

Y que hay de QT



Libreria Qt para GUI

Es una excelente librería que puede crear interfaces muy profesionales y además son muy vistosas pero el problema es que cuenta con dos licencias una gratuita para software libre y otra de paga para software comercial, esto será problema solo si se piensa crear software para comercializar aunque si se trabaja para una empresa que está dispuesta a pagar la licencia no habrá mucho problema, en lo personal pienso que todo programador ha de estar preparado para las decisiones que tome el o los que pondrán el dinero para un proyecto.

Resumen y conclusión



QT es recomendable si se quiere usar para software libre.
Wxwidgets es muy recomendable para todo tipo de uso y si es muy importante poder ejecutar el software en varias plataformas.
Winapi es recomendable si se está seguro que puede llegar a necesitarse opciones muy avanzadas y muy variadas en un software, aunque su tiempo de aprendizaje puede ser mucho mayor al de Wxwidgets principalmente si se carece de buenas guías de aprendizaje.
Comentarios y preguntas
Roundstein:
Me a dado una idea de como empezar, quizás empiece por winapi, me da curiosidad aprender mas sobre ella.
jorge:
un excelente aporte!!!!!
Codigazo:
Hola Roundstein y Jorge, muchas gracias por sacar el tiempito para comentar.
Loco:
Exelente gracias muy bien explicado
s:
donde puedo aprender winapi
Codigazo:
s, puede aprender en esta pagina pero si prefiere un curso de Winapi en video puede aprender en el enlace anterior.
christopher:
Muy buena explicación, gracias.
Codigazo:
christopher, me alegra que le fuese de ayuda.