stringtranslate.com

Borrador: NAppGUI


NAppGUI es un SDK de código abierto para crear aplicaciones de escritorio multiplataforma utilizando el lenguaje de programación C ( ANSI C90 ). NAppGUI funciona como una capa liviana sobre las API nativas del sistema operativo , lo que permite crear programas portátiles muy rápidos y pequeños sin dependencias externas.

Arquitectura

El SDK de NAppGUI va más allá de una biblioteca de widgets GUI pura y proporciona los siguientes componentes centrales multiplataforma. [1]

Plataformas compatibles

NAppGUI actualmente admite las siguientes plataformas: [2]

Portabilidad y despliegue

NAppGUI tiene como objetivo compilar y depurar un programa en cualquiera de las plataformas mencionadas anteriormente sin tocar una sola línea de código. Aprovecha CMake para crear o actualizar un proyecto de compilación a partir del código fuente y utiliza Visual Studio , Xcode o GCC según la plataforma activa. [3]

Desde el inicio del proyecto, el objetivo principal de NAppGUI ha sido simplificar al máximo la ardua tarea de crear aplicaciones con interfaz gráfica en C. La filosofía en la que se basa el proyecto y algunas de sus características son:

Documentación

La documentación de NAppGUI está disponible en forma de una Guía de inicio rápido introductoria, una Guía del usuario [4] con instrucciones de compilación y creación de una nueva aplicación, una referencia de API [5] y un libro electrónico gratuito [6].

Un conjunto de aplicaciones de muestra demuestra la funcionalidad de NAppGUI y facilita la creación de aplicaciones propias. [7]

Existe un Tutorial de Programación de NAppGUI en YouTube (en español). [8]

Ejemplo de Hola Mundo

Ejemplo de NAppGui Hola Mundo en Windows XP.
Ejemplo de NAppGui Hola Mundo en Windows XP.
Ejemplo de NAppGUI Hello World en MacOS Sonoma.
Ejemplo de NAppGUI Hello World en MacOS Sonoma.
Ejemplo de NAppGUI Hola Mundo en Ubuntu 18.
Ejemplo de NAppGUI Hola Mundo en Ubuntu 18.
Ejemplo de Hello World de NAppGui en Windows 11
Ejemplo de NAppGui Hello World en Windows 11.
Ejemplo de NAppGui Hello World en Kali Linux 2023.3.
Ejemplo de NAppGui Hello World en Kali Linux 2023.3.
Ejemplo de NAppGui Hello World en Mac OSX Snow Leopard.
Ejemplo de NAppGui Hello World en Mac OSX Snow Leopard.
Ejemplo de NAppGui Hola Mundo en Raspian 8 Jessie.
Ejemplo de NAppGui Hola Mundo en Raspian 8 Jessie.

El código de ejemplo que se muestra a continuación crea una ventana, agrega etiquetas, botones y widgets de control de texto y reacciona al hacer clic en un botón. Tres capturas de pantalla muestran el programa ejecutándose en las plataformas compatibles. [9]

/* NAppGUI Hola Mundo */#include <nappgui.h> typedef struct _app_t Aplicación ;   struct _app_t { Ventana * ventana ; TextView * texto ; uint32_t clics ; };       /*------------------------------------------------ ----------------------*/static void i_OnButton ( App * app , Event * e ) { String * msg = str_printf ( "Clic de botón (%d) \n " , app -> clics ); textview_writef ( app -> text , tc ( msg )); str_destroy ( & msg ); app -> clics += 1 ; unref ( e ); }                 /*------------------------------------------------ ----------------------*/static Panel * i_panel ( App * app ) { Panel * panel = panel_create (); Diseño * diseño = diseño_create ( 1 , 3 ); Etiqueta * etiqueta = etiqueta_create (); Botón * botón = botón_push (); TextView * texto = textview_create (); app -> texto = texto ; etiqueta_texto ( etiqueta , "¡Hola!, soy una etiqueta" ); botón_texto ( botón , "¡Haz clic en mí!" ); botón_OnClick ( botón , oyente ( app , i_OnButton , App )); diseño_etiqueta ( diseño , etiqueta , 0 , 0 ); diseño_botón ( diseño , botón , 0 , 1 ); diseño_vistadetexto ( diseño , texto , 0 , 2 ); diseño_hsize ( diseño , 0 , 250 ); diseño_vsize ( diseño , 2 , 100 ); layout_margin ( diseño , 5 ); layout_vmargin ( diseño , 0 , 5 ); layout_vmargin ( diseño , 1 , 5 ); panel_layout ( panel , diseño ); devolver panel ; }                                                                 /*------------------------------------------------ ----------------------*/void estático i_OnClose ( App * app , Event * e ) { osapp_finish (); unref ( app ); unref ( e ); }        /*------------------------------------------------ ----------------------*/static App * i_create ( void ) { App * app = heap_new0 ( App ); Panel * panel = i_panel ( app ); app -> ventana = window_create ( ekWINDOW_STD ); window_panel ( app -> ventana , panel ); window_title ( app -> ventana , "¡Hola, mundo!" ); window_origin ( app -> ventana , v2df ( 500 , 200 )); window_OnClose ( app -> ventana , listener ( app , i_OnClose , App )); window_show ( app -> ventana ); return app ; }                           /*------------------------------------------------ ----------------------*/void estático i_destroy ( App ** app ) { window_destroy ( & ( * app ) -> window ); heap_delete ( app , App ); }      /*------------------------------------------------ ----------------------*/#include "osmain.h" osmain ( i_crear , i_destruir , "" , Aplicación )    

Enlaces de otros idiomas

Existen enlaces a los siguientes lenguajes de programación para NAppGUI.

Recepción y Adopción

Licencias

NAppGUI es un proyecto de código abierto y se distribuye bajo la licencia MIT .

Referencias

  1. ^ "API de NAppGUI: SDK C multiplataforma". nappgui.com . Consultado el 12 de enero de 2024 .
  2. ^ "Inicio rápido: SDK multiplataforma para C". nappgui.com . Consultado el 12 de enero de 2024 .
  3. ^ "Bienvenido a NAppGUI - SDK multiplataforma para C". nappgui.com . Consultado el 12 de enero de 2024 .
  4. ^ "Bienvenido a NAppGUI - SDK multiplataforma para C". nappgui.com . Consultado el 12 de enero de 2024 .
  5. ^ "API de NAppGUI: SDK C multiplataforma". nappgui.com . Consultado el 12 de enero de 2024 .
  6. ^ García Collado, Francisco (7 de enero de 2024). "Dominar NAppGUI" (PDF) . SDK de C multiplataforma: NAppGUI . Consultado el 9 de enero de 2024 .
  7. ^ "Die - Cross-platform C SDK". nappgui.com . Consultado el 12 de enero de 2024 .
  8. ^ "Tutorial Programación Multiplataforma en C - YouTube". www.youtube.com . Consultado el 12 de enero de 2024 .
  9. ^ "Hola mundo: SDK multiplataforma para C". nappgui.com . Consultado el 12 de enero de 2024 .
  10. ^ Ringey, Brennan (7 de julio de 2023), stoneface86/nappgui-nim , consultado el 12 de enero de 2024
  11. ^ Ogi-kun (3 de mayo de 2023), Ogi-kun / nappgui , consultado el 12 de enero de 2024
  12. ^ "comando nappgui-go - github.com/parro-it/nappgui-go - Paquetes Go". pkg.go.dev . Consultado el 12 de enero de 2024 .
  13. ^ "Lanzamiento de MVP de biblioteca de interfaz gráfica y abstracción de SO multiplataforma · rochus-keller/Oberon". GitHub . Consultado el 12 de enero de 2024 .
  14. ^ "27 alternativas de código abierto a Electron para crear aplicaciones de escritorio utilizando tecnologías web". MEDevel.com: código abierto para atención médica y educación . 13 de julio de 2023. Consultado el 27 de mayo de 2024 .
  15. ^ "raygui vs nappgui: ¿comparación de diferencias y reseñas? | LibHunt". www.libhunt.com . Consultado el 27 de mayo de 2024 .