Jaké GUI nezávislé na operačním systému?

ginfjan

Jaké GUI nezávislé na operačním systému?
« kdy: 11. 02. 2018, 12:56:57 »
Prosím o radu, jakou GUI knihovnu byste mi doporučili pro software nezávislý na operačním systému.

"Nezávislostí" mám na mysli to, že pro knihovnu je k dispozici pouze bitmapa a události z klávesnice a myši.

Téměř všechny knihovny, co jsem nalezl v Google (QT, GTK+, wxWidgets, ...), tento požadavek nesplňují, neboť se jedná o nadstavby nad jiná API (WinAPI, X Window server, ...).
Částečně použitelné by bylo rozhraní Turbo Vision, to však je úplný extrém, neboť nepodporuje grafiku, ale pouze text. Ale v krajním případě o něm skutečně uvažuji s tím, že si nějaký canvas budu muset doimplementovat. Nerad ale znovu objevuji kolo, na to v současnosti nemám čas.

Nezáleží mi na jazyce, v němž je knihovna vytvořena (např. Pascal u Turbo Vision), stejně si ji budu muset celou překopat pro vlastní účely.
Kromě výše uvedených technických požadavků - podpora grafiky a nezávislost na GUI/API operačního systému mám ještě požadavek, že licence musí být kompatibilní s LGPL, tedy plně dostupné modifikovatelné zdrojové kódy zdarma, ale možnost z nich sestavit proprietální aplikaci, a to pro jakékoliv účely (byť o komerčních rozhodně neuvažuji).

Děkuji všam za brainstorming netypického zadání :-)


OMG

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #1 kdy: 11. 02. 2018, 13:07:28 »
Prosím o radu, jakou GUI knihovnu byste mi doporučili pro software nezávislý na operačním systému.

"Nezávislostí" mám na mysli to, že pro knihovnu je k dispozici pouze bitmapa a události z klávesnice a myši.

Téměř všechny knihovny, co jsem nalezl v Google (QT, GTK+, wxWidgets, ...), tento požadavek nesplňují, neboť se jedná o nadstavby nad jiná API (WinAPI, X Window server, ...).
Částečně použitelné by bylo rozhraní Turbo Vision, to však je úplný extrém, neboť nepodporuje grafiku, ale pouze text. Ale v krajním případě o něm skutečně uvažuji s tím, že si nějaký canvas budu muset doimplementovat. Nerad ale znovu objevuji kolo, na to v současnosti nemám čas.

Nezáleží mi na jazyce, v němž je knihovna vytvořena (např. Pascal u Turbo Vision), stejně si ji budu muset celou překopat pro vlastní účely.
Kromě výše uvedených technických požadavků - podpora grafiky a nezávislost na GUI/API operačního systému mám ještě požadavek, že licence musí být kompatibilní s LGPL, tedy plně dostupné modifikovatelné zdrojové kódy zdarma, ale možnost z nich sestavit proprietální aplikaci, a to pro jakékoliv účely (byť o komerčních rozhodně neuvažuji).

Děkuji všam za brainstorming netypického zadání :-)
U toho textového rozhraní jednoznačně ncurses, je unixové, ale pro Windows existuje překladová vrstva pro conio. Jinak ale těžko říct, pokud nevyhovuje Qt apod., tak o ničem universálním nevím.

Kate

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #2 kdy: 11. 02. 2018, 13:14:54 »
Možná bych šla cestou SDL? Event handling řeší za tebe a vyrobit si objekty potřebných widgetů by neměl být zas takový problém.

Tohle vypadá hrozně cool, ale nevím jestli není požadavek OpenGL 3 moc limitující. https://github.com/wjakob/nanogui

Ivan Nový

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #3 kdy: 11. 02. 2018, 13:21:10 »
Kivy, ale nehodí se na vše, používá openGL, https://kivy.org/#home

DogWithFleas

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #4 kdy: 11. 02. 2018, 15:09:38 »


ginfjan

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #5 kdy: 11. 02. 2018, 18:20:18 »
Děkuji za odpovědi. Ncurses mi vůbec nenapadly, přitom jsou jsou narozdíl od TV dosud udržované :-) Na OpenGL se též podívám, sice u mé aplikace k dispozici nebude, ale předpokládám, že se používá jen na překrývání oken a půjde nahradit vlastním překreslováním.

xul

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #6 kdy: 11. 02. 2018, 18:26:47 »
Qt je nadstavba bud nad winapi, linuxove xlib, existuje i nad framebufferem.

Vinicius

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #7 kdy: 11. 02. 2018, 22:08:26 »
Možná by mohl vyhovovat FOX Toolkit.

Electron

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #8 kdy: 12. 02. 2018, 12:57:58 »
Electron https://electronjs.org/ . Implementacne jde defacto o chrome browser takze ty neresis nic nizkourovnoveho pouzivas jenom web browser. Samozrejme muzes vyzit i HTML Canvas, webGL, proste jakoukoli web technologii nebo GUI. Je to multiplatformni a vypada vsude stejne. Pribalit si muzes i vlastni webfonty a nespolehat na systemove.

ava

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #9 kdy: 12. 02. 2018, 19:41:26 »
Aby nešlo o XY problém - můžete možná popsat, jaký problém vlastně potřebujete řešit, že k němu budete psát vlastní canvas? Třeba by mohla existovat snazší cesta...

ginfjan

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #10 kdy: 12. 02. 2018, 21:27:46 »
Aby nešlo o XY problém - můžete možná popsat, jaký problém vlastně potřebujete řešit, že k němu budete psát vlastní canvas? Třeba by mohla existovat snazší cesta...

Děkuji všem za nápady, existuje toho daleko více, než jsem našel v Google.

Tím "problémem" je jednoúčelová aplikace pro platformu bez operačního systému, kde je k dispozici jen videoRAM a klávesnice/myš přes porty. Žádné WinAPI, žádný X server (ba ani Linux), žádné OpenGL.
Nicméně knihovny pro OpenGL jsem nezavrhl - myslím si, že se přes toto rozhraní řeší akorát překrývání oken. Pokud nenarazím na nějaké limity typu kreslení glyphů přes polygony, tak to půjde určitě předělat na klasický framebuffer.

Sten

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #11 kdy: 12. 02. 2018, 23:56:17 »
Pro něco takového by šlo použít Qt a napsat si vlastní Platform Abstraction, třeba založené na modulu pro DirectFB.

m

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #12 kdy: 13. 02. 2018, 02:30:44 »
Ak je poziadavka bitmapa + vstupy z klavesnici a mysi, tak je jednoznacne spravna odpoved tu uz spominane SDL. Teda pri novom projekte SDL2.

Pretoze to _funguje_. Pouzivaju to A+ hry, radost s tym robit, bezi naozaj vsade, vratane mobilov a riesi drvivu vacsinu cross platform nezmyslov  (napriklad ma aj vlastny snprintf). OpenGL mozete ale nemusite pouzit. Existuje pre to kopa rozsirijucich knzinic. Ak pouzivame len 2D grafiku tak SDL zvoli vhodnu hardverovu akcelaciu, ak je k dispozicii.

m

Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #13 kdy: 13. 02. 2018, 02:37:17 »
Ak je poziadavka bitmapa + vstupy z klavesnici a mysi, tak je jednoznacne spravna odpoved tu uz spominane SDL. Teda pri novom projekte SDL2.

Pretoze to _funguje_. Pouzivaju to A+ hry, radost s tym robit, bezi naozaj vsade, vratane mobilov a riesi drvivu vacsinu cross platform nezmyslov  (napriklad ma aj vlastny snprintf). OpenGL mozete ale nemusite pouzit. Existuje pre to kopa rozsirijucich knzinic. Ak pouzivame len 2D grafiku tak SDL zvoli vhodnu hardverovu akcelaciu, ak je k dispozicii.

aha, nevisimol som si ze sa bavime o preostredi, kde nie je ani linux framebuffer. Ospravdelnujem sa. Co takto cairo a nejako ho prepojit s tym framebufferom. Malo by to ist pomerne jedoducho, cairo vie kreslit priamo do pixbufferu v zlovenom formate. Druhy krok by som pogoogil "cairo GUI toolkit" a pouzil to :).

borekz

  • ****
  • 493
    • Zobrazit profil
    • E-mail
Re:Jaké GUI nezávislé na operačním systému?
« Odpověď #14 kdy: 13. 02. 2018, 07:22:08 »
Google jsi zkusil ? První odkaz z Googlu: https://github.com/ryankurte/micro-gui