Portál AbcLinuxu, 12. května 2025 07:07

Dotaz: Jaký GUI toolkit?

14.3.2008 13:38 PMD
Jaký GUI toolkit?
Přečteno: 1164×
Odpovědět | Admin

Chci napsat GUI aplikaci a hledám GUI knihovnu, která bude splňovat aspoň většinu z těchto podmínek:


* multiplatformní - maximální stabilita aspoň na Linuxu, MacOS X, Windows

* liberální licence (něco jako LGPL, BSD) na všech třech platformách

* open source

* oddělitelná od aplikační logiky a pokud možno i jazykově agnostická (XML nebo skriptovací / domain-specific jazyk)

* možnost zásadně ovlivnit vzhled widgetů


Vychází mi z toho nejlíp Swing, ale tahle knihovna mi není zrovna nejsympatičtější.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.3.2008 14:01 springer | skóre: 10 | blog: engineering
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Odpovědět | | Sbalit | Link | Blokovat | Admin
www.fox-toolkit.org
kralovna Alzbeta a Stallmanuv holic diskutuji free software
14.3.2008 14:14 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?

Fox má dva zásadní nedostatky:

* Nemá nativní podporu pro Mac OS X

* GUI se IMHO nedá popsat jinak než přímo v C++ nebo v nějakém bindingu

14.3.2008 14:09 petr
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Java Swing:
14.3.2008 14:12 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Hm, jak jsem psal, Swing z toho vychází asi nejlíp. Asi to napíšu v tom.
14.3.2008 14:25 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Líbí se mi taky JavaFX, ale je to nezralé. Nejradši bych si sám napsal něco jako konfigurační soubor pro stavbu GUI s nějakou lidskou syntaxí + kompilátor rovnou do bytecode, ale to by bylo na dlouho;)
unknown_ avatar 14.3.2008 15:57 unknown_ | skóre: 30 | blog: blog
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
GPL není liberální licence, CDDL nevím, takžee Java Swing bych já osobně nebral
14.3.2008 16:09 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Nevím o tom moc, ale Java knihovny se dají bez porušení licence linkovat s ne-GPL aplikacemi.
14.3.2008 14:56 Petr
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Qt, Gtk+?
14.3.2008 15:02 skywaker
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
wxWindows - an open source, cross-platform C++ GUI framework

http://www.wxwindows.org/

ale som este neskusal ho -- ale pisem to preto lebo sa na wxwindows tiez chystam.
14.3.2008 15:10 Jose.
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Skoušel jsem a používám ho, mohu jedině doporučit. Existují k němu wrapery pro spoustu různých jazyků.
14.3.2008 16:04 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
GTK (zatím) neběhá nativně pod Mac OS X, jinak bych si ho vybral. Qt má restriktivní licence (komerční a GPL). WxWidgets má svoje mouchy, dalo by se říct masařky, takže to taky neberu.
14.3.2008 16:33 Jose.
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Co ti schází/přebývá/nefunguje na Wx ?
14.3.2008 16:40 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Je to archaické C++ se spoustou #define a podobných vymožeností (jedním z cílů projektu je i podpora zastaralých překladačů). Jako největší mouchu bych viděl problémy s rozvržením prvků na různých platformách (viz rřeba Hugin).
14.3.2008 16:56 skywaker
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
ja niesom nejaky profesionalny programator.. programovanie mam ako len hobby ale urcite by som skusil QT4/cmake jednak koli novosti technologie a tiez koli C++ ktore sa mi zda lepsie nez C# a tiez rychlejsie nez Java. Takze ako vieme KDe4 sa portuje na Windows a tiez na Mac.. (sory za absenciu diakritiky)
14.3.2008 18:11 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Rychlost bude sice potřebná, ale když odmyslím (pro můj projekt) nedůležité věci jako startup a latence GUI, tak bych raději použil Javu + Groovy / Jython, nebo prostě Python, než čisté C/C++. A když C++, tak moderní C++ (jako gtkmm). Musím mít co nejrychleji viditelné výsledky a ne se chlubit core dumpy:)
14.3.2008 19:02 Jose
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Ale to se týká vnitřku wx, to tě jako uživatele nemusí zajímat, navíc není vždy až taková výhoda používat nejnovější vymoženosti. Co se týče rozvržení nevím, osobně jsem správce rozvržení nikdy nepoužíval.
17.3.2008 00:41 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
wxWidgets se učíme ve škole, takže vám tu můžu napsat pár nedostatků, které mě opravdu štvou:
- Nezralé nástroje pro návrh rozhraní, ve wxSmith se nedá pracovat a
  wxFormBuilder generuje třídy, které musíte zdědit a implementovat
  události tam (opravdu nechápu tento systém, code bloat)
- API mi návrhem připomíná Win32. Všude ID, mapy událostí, pro každý 
  typ události jiný postup mapování na funkce, atd...
- Zmatek v hlavičkových souborech + zkrácené jména hlavičkových souborů
  (evnt, ...)
- Datové Kontejnery (si připadám jako bych programoval v C a ne v C++)
- Absence alespoň základní tvorby grafiky (vykreslení gradientu), 
  gradientní výplně, ... Možnost kreslit do wxImage, Antialiasing,
  nemožnost vykreslit wxImage do wxDC.
- Layout kontejnery a wxStaticBox (myslím, že ti co někdy použili ví, o
  čem mluvím)
- Slabá dokumentace a velmi málo příkladů
Nechci, aby to vyznělo jako kritika wxWidgets, ale jsou to věci, se kterýma jsem se setkal asi za 8 měsíční práci s tímto toolkitem a určitě jsem neprozkoumal celou knihovnu. Přijde mi, že oproti Qt se ve wx dělají věci strašně komplikovaně.

Navíc jsem se setkal s mnoha problémy, třeba je zajímavé namapovat si události IDLE a PAINT, atd :)

wxPython už je jepší, ale pořád mi to připomíná ty win32 návyky.
17.3.2008 11:30 Vinicius
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Gtk si pod windows nevede zrovna nejlip - treba vicevlaknove aplikace. Qt je jen pod GPL
14.3.2008 16:55 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Volbu jazyka podřídíte až volbě GUI toolkitu? Protože swing=>Java, a pokud chcete programovat v Javě, nemáte skoro jinou možnost (dobře, ještě SWT). Jinak myslím, že Swing je dobrá volba – pro Javu těžko najdete něco lepšího, a ani ve srovnání přes další platformy na tom nebude špatně. Qt bude asi lepší (i když to je taky otázka, pokud se bude srovnávat skutečně jen GUI toolkit, vyjdou možná nastejno), otázka je, jaká bude podpora Qt Windows, případně Mac OS X. Pokud vím, Qt je teď poprvé ve verzi pro Windows, takže asi bde ještě chvíli trvat, než se to usadí.
14.3.2008 17:40 Petr Svoboda | skóre: 13 | blog: * | Příbram
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
... otázka je, jaká bude podpora Qt Windows, případně Mac OS X. Pokud vím, Qt je teď poprvé ve verzi pro Windows, takže asi bde ještě chvíli trvat, než se to usadí.
Jestli se nepletu a Wikipedia mi dává za pravdu, tak Qt na Windows běží od první verze. Na Qt je například Opera. Mac OS X je pak podporován od verze 3. Nedávno se pro Windows pouze změnila licence.
14.3.2008 19:29 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Máte pravdu, ta velká novinka ohledně Qt4 a Windows bylo „jen“ uvolnění pod GPL. Jdu shánět shánět popel na svou hlavu…
15.3.2008 13:44 petr
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Qt a Mac OS X není moc dobrá volba. Aplikace jsou pomalé, GUI vypadá jak rozsypaný wxWidgets pod KDE na SuSE Linux 9.2. Aplikace se chovaj divně, klávesový zkratky neseděj… Nic moc. Nedoporučuji.
14.3.2008 18:03 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Jazyk není problém, budu to psát od začátku, takže můžu použít cokoliv. Jenom bych to nechtěl psát přímo v nízkoúrovňovém kódu, protože se o to budu muset starat sám a nechci si přidělávat práci:) Navíc Javu celkem ovládám.

Swing mi není moc sympatický, protože je pro mé účely zbytečně komplexní a nese si s sebou některé historické poklesky (AWT), ale splňuje víceméně všechny mé nároky.

Qt by bylo dobré, ale musel bych kupovat licenci, protože ten projekt nebude moci být (aspoň zpočátku) GPL.
Luboš Doležel (Doli) avatar 14.3.2008 18:38 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Qt by bylo dobré, ale musel bych kupovat licenci, protože ten projekt nebude moci být (aspoň zpočátku) GPL.
Pokud bude jen pro "interní potřebu" a nebudete vytvořený projekt dodávat někam dál, tak licenci kupovat nemusíte.
14.3.2008 19:38 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Pokud můžete použít nějaký pěkný binding a šikovný layout (obojí třeba od JGoodies, a když už tam budete podívejte se i na tamní L&F), nemusíte s komplexností přijít moc do styku. S AWT se při programování ve Swingu prakticky nepotkáte.
14.3.2008 21:24 PMD
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
To vypadá dobře. Některé ty L&F až tahají za oči, ale jako odrazový můstek pro vytvoření vlastního to stačí.

S AWT se setkám na každém kroku, protože kvůli němu je tam to všudypřítomné J před jmény tříd:) Ale to je malichernost;)
17.3.2008 11:33 Vinicius
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
To co si SWING bere z AWT nejsou poklesky, ale docela solidni system udalosti a spravcu rozvrzeni.
17.3.2008 01:10 mol
Rozbalit Rozbalit vše Re: Jaký GUI toolkit?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já používám SWT v Jythonu.

* multiplatformní - maximální stabilita aspoň na Linuxu, MacOS X, Windows

Ano

* liberální licence (něco jako LGPL, BSD) na všech třech platformách

Ano

* open source

Ano

* oddělitelná od aplikační logiky a pokud možno i jazykově agnostická (XML nebo skriptovací / domain-specific jazyk)

SWT samo o sobě ne. Já používám Jython, aby ten kód nebyl tak strašně dlouhý jako v Javě. Pro vyšší požadavky existuje JFace a Eclipse RCP.

* možnost zásadně ovlivnit vzhled widgetů

Ne. Samozřejmě OnPaint lze napsat vlastní vždycky :-), al e jinak to vykresluje dle platformy. Existuje teda i SWT na Swingu, tam lze pak používat Swingovská témata :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.