Todos mis programas de C ++ hasta ahora han estado utilizando la interfaz de línea de comandos y el único otro lenguaje con el que tengo experiencia es PHP que no admite GUI.
¿Dónde empiezo con la programación gráfica de la interfaz de usuario en C ++? ¿Cómo creo uno?
c++
user-interface
waiwai933
fuente
fuente
Respuestas:
Esencialmente, el sistema de ventanas de un sistema operativo expone algunas llamadas API que puede realizar para realizar trabajos como crear una ventana o colocar un botón en la ventana. Básicamente, obtienes un conjunto de archivos de encabezado y puedes llamar a funciones en esas bibliotecas importadas, tal como lo harías con stdlib y
printf
.Cada sistema operativo viene con su propio kit de herramientas GUI, conjunto de archivos de encabezado y llamadas API, y su propia forma de hacer las cosas. También hay kits de herramientas multiplataforma como GTK , Qt y wxWidgets que lo ayudan a crear programas que funcionan en cualquier lugar. Logran esto al tener las mismas llamadas API en cada plataforma, pero una implementación diferente para esas funciones API que llaman a las llamadas API nativas del sistema operativo.
Una cosa que todos tendrán en común, que será diferente de un programa CLI, es algo llamado un bucle de eventos. La idea básica allí es algo complicada y difícil de comprimir, pero en esencia significa que no hay mucho en tu clase principal / función principal, excepto:
Hay muchos recursos sobre programación basada en eventos. Si tiene alguna experiencia con JavaScript, es la misma idea básica, excepto que usted, el programador no tiene acceso o control sobre el ciclo de eventos en sí, o qué eventos hay, su único trabajo es escribir y registrar controladores.
Debe tener en cuenta que la programación de la GUI es increíblemente complicada y difícil, en general. Si tiene la opción, en realidad es mucho más fácil integrar un servidor web incorporado en su programa y tener una interfaz basada en HTML / web. La única excepción que he encontrado es Cocoa + Xcode + Apple Builder + tutoriales de Apple que lo hacen fácilmente el entorno más accesible para las personas nuevas en la programación GUI que he visto.
fuente
Hay muchas bibliotecas GUI portátiles gratuitas , cada una con sus propias fortalezas y debilidades:
Especialmente Qt tiene buenos tutoriales y herramientas que lo ayudan a comenzar. ¡Disfrutar!
Sin embargo, tenga en cuenta que debe evitar la funcionalidad específica de la plataforma , como la API Win32 o MFC. Eso lo vincula innecesariamente a una plataforma específica con casi ningún beneficio.
fuente
Algoritmo independiente del sistema operativo " Creación de aplicaciones GUI en C ++ en tres pasos ":
Instalar Qt Creator
Crear nuevo proyecto (Aplicación Qt Widgets)
Constrúyelo.
Felicidades, tienes tu primera GUI en C ++.
Ahora está listo para leer mucha documentación para crear algo más complicado que la aplicación GUI "Hello world".
fuente
Dado el comentario de "diga Windows XP como ejemplo", sus opciones son:
Interactúa directamente con el sistema operativo a través de su API, que para Microsoft Windows es una sorpresa sorpresa llamada Windows API . La referencia definitiva para WinAPI es el sitio web MSDN de Microsoft . Un popular tutorial en línea para principiantes es el Tutorial de programación API Win32 de Forger . El libro clásico para eso es Charles Petzold's Programming Windows, 5th Edition .
Utilice una biblioteca específica de plataforma (tanto en términos de sistema operativo como de compilador) como MFC , que envuelve el WinAPI en la clase C ++. La referencia para eso es nuevamente MSDN. Un libro clásico para eso es Jeff Prosise's Programming Windows with MFC, 2nd Edition . Si está utilizando, por ejemplo, CodeGear C ++ Builder, la opción aquí es VCL .
Utilice una biblioteca multiplataforma como GTK + (contenedor C ++: gtkmm ), Qt , wxWidgets o FLTKque envuelven la API específica del sistema operativo. Las ventajas de estos son que, en general, su programa podría compilarse para diferentes sistemas operativos sin tener que cambiar los códigos fuente. Como ya se mencionó, cada uno tiene sus propias fortalezas y debilidades. Una consideración al seleccionar cuál usar es su licencia. Para los ejemplos dados, GTK + & gtkmm tiene licencia bajo LGPL, Qt tiene varias licencias, incluida la opción propietaria, wxWidgets está bajo su propia licencia de wxWindows (con un cambio de nombre a wxWidgets License), y FLTK está bajo LGPL con excepción. Para referencia, tutorial y / o libros, consulte el sitio web de cada uno para obtener más detalles.
fuente
Como ya he estado donde estás ahora, creo que puedo "responderte".
El hecho es que no hay una manera fácil de hacer una GUI. Las GUI dependen en gran medida de la plataforma y del código específico del sistema operativo, es por eso que debe comenzar a leer la plataforma de destino / documentación del sistema operativo en las API de administración de ventanas. Lo bueno es que hay muchas bibliotecas que abordan estas limitaciones y diferencias de arquitectura abstracta en una sola API multiplataforma. Los sugeridos anteriormente, GTK y Qt, son algunas de estas bibliotecas.
Pero incluso estos son un poco demasiado complicados, ya que se introducen muchos conceptos, tipos de datos, espacios de nombres y clases nuevos, todo a la vez. Por esta razón, suelen venir con algún editor de GUI WYSIWYG. Prácticamente hacen posible el software de programación con GUI.
En resumen, también hay "entornos" no libres para el desarrollo de GUI como Visual Studio de Microsoft. Para aquellos con experiencia en Delphi , Visual Studio puede ser más familiar. También hay alternativas gratuitas al entorno completo de Visual Studio suministrado por Microsoft: Visual Studio Express , que es más que suficiente para comenzar el desarrollo de la GUI.
fuente
Encontré un sitio web con un tutorial "simple": http://www.winprog.org/tutorial/start.html
fuente
Es fácil crear una GUI de Windows .NET en C ++.
Consulte el siguiente tutorial de MSDN . Puede descargar todo lo que necesita (Visual C ++ Express) de forma gratuita .
Por supuesto, te vinculas a .NET, pero si solo estás jugando o solo necesitas una aplicación de Windows, estarás bien (la mayoría de las personas todavía tienen Windows ... por ahora).
fuente
Yo uso FLTK porque Qt no es gratis. No elijo wxWidgets , porque mi primera prueba con un simple Hello, World! El programa produjo un ejecutable de 24 MB, FLTK 0.8 MB ...
fuente