IUP
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 15 martie 2021; verificările necesită
7 modificări .
IUP este o bibliotecă multiplatformă de elemente de bază ale interfeței grafice cu utilizatorul care utilizează C și Lua . Cu ajutorul acestuia, puteți crea aplicații grafice rapide, care nu necesită compilare.
Limbi și platforme acceptate
Pe Linux și alte sisteme de operare asemănătoare Unix , funcționează prin Gtk , Motif / Lesstif sau interacționând direct cu serverul X . Pe Windows , folosește caracteristicile grafice ale sistemului de operare respectiv. În 2017, au fost introduse backend-uri care permit dezvoltarea de aplicații native pentru MacOS [2] , iOS [3] , Android [4] folosind IUP , precum și aplicații web folosind Emscripten [5] [6] .
Biblioteca este scrisă în C , iar arhitectura sa îi permite să fie folosită într-un mod destul de natural din codul C++ orientat pe obiecte . Dezvoltat la Universitatea Catolică din Rio de Janeiro [7] , ca și Lua , acceptă integrarea cu acest limbaj de scripting.
Există, de asemenea, biblioteci wrapper disponibile pentru utilizarea IUP în multe limbi, cum ar fi Ruby [8] , Euphoria [9] , FreeBasic [10] , Perl [11] , Scheme [12] , Eiffel [13] , Nim [14] si altele.
Caracteristici
IUP folosește în mod tradițional limbajul LED pentru a descrie fișierele de resurse , care este considerat învechit în versiunile moderne ale bibliotecii și este înlocuit cu limbajul Lua . Este posibil să creați aplicații IUP fără a utiliza LED sau Lua, folosind doar API-ul C.
Biblioteca include și un simplu RAD IDE dezvoltat în 1994 de IupVisualLED [15] , care permite editarea dialogurilor GUI într-un mod apropiat de WYSIWYG . IupVisualLED vă permite, de asemenea, să exportați codul rezultat în LED, Lua sau C. Pentru a lucra cu scripturi Lua, IUP include IupLuaScripter, un editor de cod Lua cu suport de depanare.
IUP are un API destul de minimalist (aproximativ o sută de funcții C) și diferă de alte biblioteci similare prin modul în care implementează 4 concepte importante:
- Este timpul să creați controale . Când este creat un widget , acesta nu este afișat imediat în sistemul de operare . Este executat atunci când dialogul care conține widget-ul este afișat sau prin apelarea manuală a unei funcții IupMappentru acel dialog.
- Sistem de atribute . Există foarte puține funcții în IUP, deoarece principala modalitate de a lucra cu widget-uri este accesarea atributelor acestora (tipul text) folosind funcțiile IupSetAttribute și IupGetAttribute.
- Dispoziție de poziționare abstractă . Widgeturile din IUP nu sunt niciodată poziționate după coordonate explicite; pozițiile lor sunt calculate dinamic, conform ierarhiei abstracte de layout definită de widget-uri container , IupFilletc. (cu toate acestea, poziționarea explicită este permisă în interiorul widget-urilor container de un tip special).IupHboxIupVbox
- Sistem de apel invers . Limbajul LED acceptă conectarea indirectă a widget-urilor cu funcții de apel invers . Pentru a lega o funcție C, utilizați construcția IupSetFunction имяurmată de legarea atributelor de apel invers folosind IupSetAttribute. De asemenea, puteți lega direct un widget la un apel invers folosind IupSetCallback.
Designul IUP a eliminat restricțiile privind clasa/tipul de instanțe de obiect, dar a păstrat ierarhia de moștenire în stil Lua (vezi programarea prototipului ).
Începând cu versiunea 3.9, IUP acceptă șiruri UTF-8 .
Caracteristici suplimentare
Pe lângă crearea de widget-uri, IUP oferă o serie de caracteristici suplimentare:
- desen;
- crearea de tablouri și tabele hash;
- lucrul cu sfori;
- obținerea de informații despre fonturi;
- obținerea de informații despre sistem.
Licență
IUP este disponibil pentru descărcare, utilizare gratuită, modificare, utilizare comercială și distribuție sub licența MIT [16] .
Note
- ↑ Proiectul iup Open Source pe Open Hub: Pagina de limbi - 2006.
- ↑ Proiect IupCocoa pe GitHub
- ↑ Proiect IupCocoaTouch pe GitHub
- ↑ Proiect IupAndroid pe GitHub
- ↑ Proiect IupEmscripten pe GitHub
- ↑ Lua Workshop 2017: IUP Next - Eric Wing și Chris Matzenbach pe YouTube
- ↑ O parte dintre dezvoltatorii IUP sunt și dezvoltatori Lua
- ↑ Ruby-IUP Arhivat la 14 aprilie 2011 la Wayback Machine ( depozitul de cod sursă Arhivat la 11 iunie 2018 la Wayback Machine pe github )
- ↑ EuIup . Consultat la 26 aprilie 2011. Arhivat din original pe 14 iulie 2012. (nedefinit)
- ↑ Portable GUI toolkit (IUP) versiunea 3.0 (RC2) Arhivat 4 februarie 2010 la Wayback Machine pe forumul FreeBasic
- ↑ perl-iup . Preluat la 26 aprilie 2011. Arhivat din original la 11 iunie 2018. (nedefinit)
- ↑ IUP: IUP (link descendent) . Data accesului: 29 mai 2012. Arhivat din original pe 9 martie 2011. (nedefinit) Arhivat din original pe 9 martie 2011.
- ↑ eiffel-iup Arhivat 26 septembrie 2019 la Wayback Machine - Biblioteca de instrumente IUP pentru GOBO Eiffel
- ↑ IUP-wrapper este arhivat pe 26 ianuarie 2017 în partea Wayback Machine a bibliotecii standard Nim
- ↑ Oliveira Prates, R.; Gattass, M. ;și Figueiredo, LH Visual LED: uma ferramenta interativa para geração de interfaces gráficas (port.) // M.Sc. disertație, Departamentul de Informatică. - PUC-Rio , 1994. Arhivat din original la 2 septembrie 2009.
- ↑ Tecgraf Library License . Consultat la 15 septembrie 2009. Arhivat din original la 22 octombrie 2009. (nedefinit)
Link -uri
Seturi de instrumente (seturi) de elemente GUI |
---|
nivel scăzut |
|
---|
nivel înalt | Amiga OS |
|
---|
MacOS și macOS |
- Cacao
- macapp
- MacZoop
- Centrală electrică
|
---|
Windows |
|
---|
UNIX , sub X |
|
---|
Cross platform _ | Bazat pe flash |
|
---|
Bazat pe XML, AJAX sau SVG |
|
---|
Bazat pe Java |
|
---|
Bazat pe C sau C++ |
|
---|
Bazat pe Common Lisp |
|
---|
Bazat pe Pascal |
|
---|
Bazat pe Python |
|
---|
Pe baza Obiectiv-C |
|
---|
|
---|
|
---|