IUP
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 15. marts 2021; checks kræver
7 redigeringer .
IUP er et bibliotek på tværs af platforme med grundlæggende grafiske brugergrænsefladeelementer ved hjælp af C og Lua . Med dens hjælp kan du oprette hurtige, grafiske applikationer, der ikke kræver kompilering.
Understøttede sprog og platforme
På Linux og andre Unix-lignende operativsystemer fungerer det gennem Gtk , Motif / Lesstif eller direkte interaktion med X-serveren . På Windows bruger den de grafiske funktioner i det pågældende operativsystem. I 2017 blev der introduceret backends, der tillader udvikling af native applikationer til MacOS [2] , iOS [3] , Android [4] ved hjælp af IUP , samt webapplikationer, der bruger Emscripten [5] [6] .
Biblioteket er skrevet i C , og dets arkitektur gør det muligt at bruge det på en ret naturlig måde fra objektorienteret C++- kode . Udviklet på det katolske universitet i Rio de Janeiro [7] , ligesom Lua , understøtter det integration med dette scriptsprog ud af boksen.
Der er også indpakningsbiblioteker tilgængelige til brug af IUP på mange sprog, såsom Ruby [8] , Euphoria [9] , FreeBasic [10] , Perl [11] , Scheme [12] , Eiffel [13] , Nim [14] og andre.
Funktioner
IUP bruger traditionelt LED -sproget til at beskrive ressourcefiler , som anses for at være forældede i moderne versioner af biblioteket og erstattes af Lua-sproget . Det er muligt at oprette IUP-applikationer uden brug af LED eller Lua, kun ved brug af C API.
Biblioteket inkluderer også en simpel RAD IDE udviklet i 1994 af IupVisualLED [15] , som tillader redigering af GUI-dialoger i en tilstand tæt på WYSIWYG . IupVisualLED giver dig også mulighed for at eksportere den resulterende kode til LED, Lua eller C. For at arbejde med Lua-scripts inkluderer IUP IupLuaScripter, en Lua-kodeeditor med debugging-understøttelse.
IUP har en ret minimalistisk API (ca. hundrede C-funktioner) og adskiller sig fra andre lignende biblioteker i den måde, den implementerer 4 vigtige koncepter på:
- Tid til at skabe kontroller . Når en widget oprettes, vises den ikke med det samme i OS . Det udføres, når dialogen, der indeholder widgetten, vises, eller ved manuelt at kalde en funktion IupMaptil den dialog.
- Attributsystem . Der er meget få funktioner i IUP, fordi den vigtigste måde at arbejde med widgets på er at få adgang til deres attributter (teksttype) ved hjælp af IupSetAttribute og IupGetAttribute funktionerne.
- Abstrakt positioneringslayout . Widgets i IUP er aldrig placeret efter eksplicitte koordinater; deres positioner beregnes dynamisk i henhold til det abstrakte layouthierarki defineret af containerwidgets IupFill, IupHboxosv IupVbox. (dog er eksplicit positionering tilladt inde i containerwidgets af en speciel type).
- Tilbagekaldssystem . LED - sproget understøtter indirekte forbindelse af widgets med tilbagekaldsfunktioner . For at binde en C-funktion skal du bruge konstruktionen IupSetFunction имяefterfulgt af at binde tilbagekaldsattributter ved hjælp af IupSetAttribute. Du kan også binde en widget direkte til et tilbagekald ved hjælp af IupSetCallback.
Designet af IUP fjernede begrænsningerne på klassen/typen af objektforekomster, men bibeholdt Lua-stilen arvehierarkiet (se prototypisk programmering ).
Fra og med version 3.9 understøtter IUP UTF-8- strenge .
Yderligere funktioner
Ud over at oprette widgets tilbyder IUP en række yderligere funktioner:
- tegning;
- oprettelse af arrays og hashtabeller;
- arbejde med strenge;
- få information om skrifttyper;
- få information om systemet.
Licens
IUP er tilgængelig til download, gratis brug, modifikation, kommerciel brug og distribution under MIT-licensen [16] .
Noter
- ↑ iup Open Source-projektet på Open Hub: Languages-side - 2006.
- ↑ IupCocoa-projekt på GitHub
- ↑ IupCocoaTouch-projekt på GitHub
- ↑ IupAndroid-projekt på GitHub
- ↑ IupEmscripten-projekt på GitHub
- ↑ Lua Workshop 2017: IUP Next - Eric Wing & Chris Matzenbach på YouTube
- ↑ En del af IUP-udviklerne er også Lua-udviklere
- ↑ Ruby-IUP Arkiveret 14. april 2011 på Wayback Machine ( kildekodelager Arkiveret 11. juni 2018 på Wayback Machine på github )
- ↑ EuIup . Hentet 26. april 2011. Arkiveret fra originalen 14. juli 2012. (ubestemt)
- ↑ Portable GUI toolkit (IUP) version 3.0 (RC2) Arkiveret 4. februar 2010 på Wayback Machine på FreeBasic-forummet
- ↑ perl-iup . Hentet 26. april 2011. Arkiveret fra originalen 11. juni 2018. (ubestemt)
- ↑ IUP: IUP (downlink) . Dato for adgang: 29. maj 2012. Arkiveret fra originalen 9. marts 2011. (ubestemt) Arkiveret fra originalen den 9. marts 2011.
- ↑ eiffel-iup Arkiveret 26. september 2019 på Wayback Machine - IUP toolkit library for GOBO Eiffel
- ↑ IUP-indpakning er arkiveret 26. januar 2017 på Wayback Machine - delen af Nim-standardbiblioteket
- ↑ Oliveira Prates, R.; Gattass, M. og Figueiredo, LH Visuel LED: uma ferramenta interativa para geração de interfaces gráficas (port.) // M.Sc. afhandling, Datalogisk Afdeling. - PUC-Rio , 1994. Arkiveret fra originalen 2. september 2009.
- ↑ Tecgraf bibliotekslicens . Hentet 15. september 2009. Arkiveret fra originalen 22. oktober 2009. (ubestemt)
Links
Værktøjssæt (sæt) af GUI-elementer |
---|
lavt niveau |
|
---|
højt niveau | Amiga OS |
|
---|
MacOS og macOS |
- Kakao
- macapp
- MacZoop
- Kraftværk
|
---|
Windows |
|
---|
UNIX , under X |
|
---|
På tværs af platforme _ | Flash-baseret |
|
---|
Baseret på XML, AJAX eller SVG |
|
---|
Baseret på Java |
|
---|
Baseret på C eller C++ |
|
---|
Baseret på Common Lisp |
|
---|
Baseret på Pascal |
|
---|
Baseret på Python |
|
---|
Baseret på Objective-C |
|
---|
|
---|
|
---|