Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: martin 02. 04. 2014, 23:54:01

Název: V čem napsat jednoduché GUI?
Přispěvatel: martin 02. 04. 2014, 23:54:01
Zdravim,
rad bych si napsal jednoduche GUI, kde bych si naklikal par voleb a program by sam vygeneroval prikazy a spustil je.
Pouzivat to chci na Debian-based distribucich, hlavne *buntu s Gnome/Xfce/LXDE - prevazne GTK. Rad bych malo zavislosti.
Teoreticky by stacilo zenity (http://www.linuxexpres.cz/praxe/zenity-vlidna-tvar-pro-vase-skripty), ale je malo user-friendly a ma omezene moznosti.

Prevazne programuji v Jave, ale predstava zavislosti na JRE kvuli jenoduchemu klikatku se mi prilis nezamlouva...
Kdysi jsem si dost hral v Pythonu, byl by Python vhodny? Jakou knihovnu na GUI? Pouziva se jeste Tkinter (https://wiki.python.org/moin/TkInter)? Nasel jsem PyWebKitGtk (https://code.google.com/p/pywebkitgtk/) ma to smysl?
C/C++ bych se radeji vyhnul, ale zasadni problem s nim nemam.

Take bych rad nejaky GUI navrhar, psani GUI ve vimu nepatri mezi me zajmy :-)

Jde mi vlastne o neco ve stylu programu PostInstallerF (http://www.root.cz/clanky/softwarova-sklizen-2-4-2014/):
http://a.fsdn.com/con/app/proj/postinstaller/screenshots/Screenshot%20from%202013-01-17%2021:40:52.png

Muzete mi prosim neco doporucit? Jinak asi skoncim u Javy a Swingu (vim, je uz nejmin 10 let zastaraly).

Název: Re:V cem napsat jednoduche GUI pro spusteni nekolika prikazu
Přispěvatel: DK 03. 04. 2014, 00:02:38
swing tak zastaraly neni, porad v nem muzes vytvorit moderni aplikace, ale je to trochu overkill

asi bych sel do pythonu (tkinter), temer vsude se pouziva
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: venca 03. 04. 2014, 00:09:53
Taky sem nad tím přemýšlel. Bohužel, člověk většinou musí zůstat u Pythonu. Nic jiného osvědčeného a relativně jednoduchého neexistuje.

Java v žádném případě, protože je moc těžkotonážní. Jednu dobu sem zkoušel ruby, ale to se taky neosvědčilo. 
Název: Re:V cem napsat jednoduche GUI pro spusteni nekolika prikazu
Přispěvatel: tuxmartin 03. 04. 2014, 00:36:32
swing tak zastaraly neni, porad v nem muzes vytvorit moderni aplikace, ale je to trochu overkill
asi bych sel do pythonu (tkinter), temer vsude se pouziva
Kdyz GUI v Jave, tak pro nove app dnes jedine JavaFX. Swing pro nove app proste nedava smysl. Ale neresme Javu - na tento ucel je nevhodna a jenom bychom rozpoutali flame.

O Tkinteru celkem dost uvazuju, ale treba v ubuntu neni python-tk v zakladni instalaci - takze se asi tkinter zas tolik nepouziva.
Ma to nejaky pouzelny GUI builder? Tim myslim neco ve stylu Window Builder Pro: https://www.eclipse.org/windowbuilder/images/wb_summary_shot.gif
Název: Re:V cem napsat jednoduche GUI pro spusteni nekolika prikazu
Přispěvatel: Pavel Tisnovsky 03. 04. 2014, 07:48:46
swing tak zastaraly neni, porad v nem muzes vytvorit moderni aplikace, ale je to trochu overkill
asi bych sel do pythonu (tkinter), temer vsude se pouziva
Kdyz GUI v Jave, tak pro nove app dnes jedine JavaFX. Swing pro nove app proste nedava smysl. Ale neresme Javu - na tento ucel je nevhodna a jenom bychom rozpoutali flame.

O Tkinteru celkem dost uvazuju, ale treba v ubuntu neni python-tk v zakladni instalaci - takze se asi tkinter zas tolik nepouziva.
Ma to nejaky pouzelny GUI builder? Tim myslim neco ve stylu Window Builder Pro: https://www.eclipse.org/windowbuilder/images/wb_summary_shot.gif

S JavaFX bych osobně ještě počkal na dobu, kdy to Oracle zcela uvolní pod rozumnou licencí, ideálně až bude v OpenJDK. Jinak to může být stejně slepá větev jako Silverlight, no uvidíme (a zrovna u JavaFX se s Oraclem zdá se půjde domluvit...)

Tkinter se používá mj. i na Windows, protože je součástí instalace Pythonu od ActiveState - takže se tím částečně vyřeší i případná tvorba instalátoru (nejsem moc příznivcem těchto částečně uzavřených řešení, ale wokna jsou prostě wokna...:-/). Pravda je, že Tk (základ Tkinteru) vypadají na Windows pěkně "nativně", na Linuxovém desktopu je to pořád ještě trošku horší, což je škoda, protože GUI v tom uděláte rychle.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: JS 03. 04. 2014, 11:59:00
Ja mam dobrou zkusenost s Pythonem a PyQt.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: Pavouk106 03. 04. 2014, 12:43:44
Já se předem omlouvám, ale když je tu velmi podobné téma, využiju toho.

Kdybych si chtěl udělat GUI (řekněme k ffmpeg) a chtěl bych použít C (nebo C++) a GTK, jak na to? Ideálně pokud máte nějaký prověřený návod k základům takové kombinace (Google umím používat, proto se ptám na ověřený)... Stačí jen odkaz. Díky
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: ava 03. 04. 2014, 18:15:30
Mě se parádně pracovalo ve wxPython. Zadarmo máš nativní vzhled pod windows, kdyby k tomu mělo někdy dojít :)
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: hu 03. 04. 2014, 18:30:51
Mě se parádně pracovalo ve wxPython. Zadarmo máš nativní vzhled pod windows, kdyby k tomu mělo někdy dojít :)

Alespon C++ bindingy pro wxWidgets jsou neuveritelna prasarna ala microsofti MFC plna maker a hloupejch pointeru.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: examon 03. 04. 2014, 19:17:52
Ja mam tiez dobru skusenost s Pythonom + PySide/PyQt. Da sa to naucit super rychlo ak uz vies Python.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: ava 03. 04. 2014, 21:08:27
Mě se parádně pracovalo ve wxPython. Zadarmo máš nativní vzhled pod windows, kdyby k tomu mělo někdy dojít :)

Alespon C++ bindingy pro wxWidgets jsou neuveritelna prasarna ala microsofti MFC plna maker a hloupejch pointeru.

Používání maker a hloupých pointerů není IMHO ani tak prasárna, jako spíš důsledek rozhodnutí používat jen takovou podmnožinu C++, kterou podporují všechny tehdejší cílené překladače. Asi neznám kromě C++ žádný používaný jazyk, který po většinu svého života nemá na majoritních platformách překladače kompletně pokrývající aktuální (a občas nejednoznačné) specifikace (viz např. http://www.drdobbs.com/c-conformance-roundup/184401381 (http://www.drdobbs.com/c-conformance-roundup/184401381)). Jestli to bylo tehdy rozhodnutí moudré nebo ne nechci hodnotit (smrdí flamem), ale respektuji ho, a myslím že bindingy si v rámci takto dobrovolně nastavených omezení nevedou špatně.

Každopádně, wxPython je daleko veselejší písnička, s problémy jsem se prakticky nepotkal, bindingy mi přišly jednoduché, promyšlené a používaly se dobře.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: __xxar3s 04. 04. 2014, 02:30:56
Ak ti nevadi ze Qt nema vynimky tak Qt. Alebo skus Lazarus. Ak targetujes aplikaciu na Windows tak WPF
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: Vláďa J 10. 04. 2014, 13:20:17
Od GTK poslední dobou všichni utíkají ke Qt. Dá se jmenovat například Avidemux, OpenShot, VLC, celý Unity.

Pokud neni potřeba přístup k lokálnímu disku, doporočuju napsat to celý v Qt/QML. Jednou napsanej program pak běhá bez problémů na všech OS (včetně mobilních). Případně se dá napsat nějaký backend v Pythonu nebo C++. Python je jednodušší, ale odstřelí mobilní platformy.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: mjakl 10. 04. 2014, 15:41:46
Použil bych python a GTK+. Viz http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: eMko 10. 04. 2014, 18:33:40
Na opravdu jednoduché GUI skutečně není problém použít TkInter v Pythonu.

JavaFX/WPF jsou super věci, ale na opravdu jednoduché věci bych je nepoužil, je to overkill (a když už, tak bych vzal nějakou Rich Client Platform - ať už z Netbeans nebo Eclipse - obě stojí "za to").

A tvrzení, že Swing je zastaralý a nepoužívá se ... to je jako říct, že Win.Forms nebo MFC jsou zastaralé a nepoužívají se. Jo, lidi o nich neblogují, protože ty technologie jsou tu dlouho a nepřidávají se do nich žádné nové "cool features" jako na běžícím pásu. Nicméně ještě dlouho tu s námi budou a vývoj nových aplikací v nich také. Například pro Netbeans Platform / Eclipse RCP zatm nejsou alternativy postavené na JavaFX (byť je možné do nich JavaFX integrovat, ale stále využívají Swing/SWT). (Nedávno jsem dokonce viděl aplikaci napsanou v AWT (= Awful Window Toolkit - předchůdce Swingu) a u nás na firmě se zrovna dokončuje předělávka business aplikace, která měla GUI ve starém 16bit Visual Basicu ... tohle není na žádném super-ultra-cool weblogu vidět, ale TOTO je realita, ne to, že framework/technologie se v každé firmě od základu mění co půl roku a všechny aplikačky se přepisují.)
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: mv 10. 04. 2014, 19:26:12
Mam zkusenost s PyGtk i PyQt a muzu rict, ze oboji je na pouzivani super a je jedno jestli si to naklikate, nebo napisete. Jedine na co jsem nedavno narazil, kdyz jsem prechazel na PyQt5 tusim, tak tam to vyzaduje koukani do c++ dokumentace, protoze ta k pythonu je nepouzitelna, ale to je spis jen drobnost, na kterou si zvyknete, ale obcas to brzdi. S verzi PyQt4 by nemel byt vetsi problem ani s tutorialy.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: libor 10. 04. 2014, 20:31:28
Někdo napsal: ...Od GTK poslední dobou všichni utíkají ke Qt. Dá se jmenovat například Avidemux...

Možná to je právě ten důvod, proč nový Avidemux padá jak ranní rosa a nedá se s ním dělat.
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: aaa158 11. 04. 2014, 10:25:17
Někdo napsal: ...Od GTK poslední dobou všichni utíkají ke Qt. Dá se jmenovat například Avidemux...

Možná to je právě ten důvod, proč nový Avidemux padá jak ranní rosa a nedá se s ním dělat.

No a mozno ten pravy dovod nie je pouzity toolkit / framework ale prasaciny v avidemuxe ;-)
Název: Re:V čem napsat jednoduché GUI?
Přispěvatel: host 11. 04. 2014, 15:54:32
Kdepak, Avidemux 2.5.6 (GTK+) nepadá a navíc umí i řadu věcí, které byly v padajícím Avidemuxu 2.6.x (Qt) vyřazeny.