Page 2 of 2

Re: C++ User Interface

Posted: 15 Aug 2013, 12:07
by curiosul
Cum a spus colegul de mai sus: "pe cand wxWidgets face apel la functiile OS-ului in materie de GUI si obtine fara sa vrea interfata nativa".

Ma cam balbai si nu mai inteleg nici eu ce vreau. Totusi voi ce recomandati?
Care framework pentru Gui C++ mi-ar prinde mai bine pentru viitor? Sau care se cauta? Cu care pot gasi mai usor un loc de munca?

Re: C++ User Interface

Posted: 15 Aug 2013, 20:02
by neagu_laurentiu
Poti trage un ochi pe site-urile cu joburi de la noi si din straintate sa-ti faci o parere. De regula (cand vorbim de comercial) se cauta MFC ori QT.
Dar nu trebuie sa faci din asta un scop in viata fiindca vei schimba multe in cariera. Important e sa inveti sa lucrezi cu o astfel de biblioteca. Cat timp ai la purtator principiile programarii puse pe baze solide si poti citi documentatia din engleza te vei adapta la orice.

Re: C++ User Interface

Posted: 16 Aug 2013, 11:06
by bu7ch3r
Qt, MFC, WINAPI, se cauta. Nu stiu anunturi de angajare pe wxWidgets. Important e sa stii programare nu sa muti butoane, spuse cel care a facut GUI toata viata :D
Qt-ul il inveti in 2 saptamani - apoi daca mai fac si o aplicatie doua esti deja avansat, mai ii ai si pe cei de pe forum si poti bate spre expert wannabe.
MFC-ul la fel, sunt fundamente de baza, mai inveti niste giumbuslucrui, mai citesti niste smecherii scrise de Ovidiu sau Marius(o sa vezi ca aproape orice cauti dai de ei :))).
WINAPI e un fel de: "sa-ti bati cuie in talpa cu tastatura in timp ce stai agatat de o macara deasupra unui lac plin cu crocodili" in materie de GUI. WINAPI e bun ca folosindu-l "controlezi" Windows-ul, te poti numi un fel de "shafu' windows-ului".
Bine Qt "si prietenii sai"(vezi "Mos Craciun si prietenii sai") (wxWidgeds, MFC, GTK, MK4, LSD, H2O<ignora ultimii 3>) se inteleg destul de bine cu cel putin un sistem de operare.

Din nou, sa muti butoane si sa citesti continutul unor containere e usor. UI-ul e primul layer intr-o aplicatie. Ce se intampla cand apesi un button poate fi orice cod (c, java, c++, php). Afirmatia e valabila si invers, poti sa ai frontend in JAVA si backend in C.

Daca vrei sa faci ceva simplu:
http://www.c-sharpcorner.com/UploadFile ... geBox1.gif

Daca vrei sa faci ceva mai complex:
Qt:
https://www.comodo.com/home/backup-onli ... _step1.gif

MFC:
http://www.security-faqs.com/wp-content ... Backup.jpg
http://img.brothersoft.com/screenshots/ ... 76435.jpeg

Qt & MFC - nu e nici o diferena :)
http://www.all-freeware.com/images/full ... estore.png

Si ceva mai exotic javascript + html5 + css3:
http://beta.images.theglobeandmail.com/ ... three8.jpg

In spatele aplicatiilor astea ruleaza cod scris in C, sau C++, cod care foloseste WINAPI sau linux sau mai stiu eu ce OS.
Aplicatiile pot sa foloseasca module ajutatoare scrise de "altii" in ce au avut ei chef care sa cripteze date, parseze xml-uri, conecteze la websocketuri, deseneze 3D/2D/5D, scaneze fisere de virusi, arhiveze/dezarhiveze, conecteze la servere si sa trimita mesaje, foloseasca facebook-ul sa-ti anunte toti prietenii cand ai un virus sau ai scanat pc-ul si applicatia minune a facut o treaba geniala...o gramada de chestii.

Tehnologiile sunt multe - nu exista ceva anume care sa-ti garanteze succesul. Piata e dinamica, pana termini tu facultatea Qt-ul poate sa dispara si firmele o sa inceapa sa caute XXX-isti.(XXX - alt limbaj de programare/tehnologie numai ala/aia pe care il/o stii tu nu) - si atunci o sa cazi in depresie ca te-ai chinuit x ani sa inveti x fente care nu te ajuta nici sa te angajezi la xerox.

Si mai este o scapare: Corporatia - te angajezi la firma XXXental - stai acolo cuminte o viata - daca esti putin istet dupa 5 ani o sa-ti dea un pix si un tricou co logo-ul firmei, o sa-ti mareasca salariul cu 1.734534% si o sa te faca "senior". Dupa 10 ani o sa te faca si mai senior - o sa vezi ca exista o gramada de titluri pentru programatori(1, 2, 3, A, B, C, arhitect, miner, inginer, bigubastic, mario, super mario etc) si tot asa pana o sa te faca pensionar.
Daca skill-ul tau depaseste orice limita - o sa-ti dai seama ca nu e locul tau acolo si o sa te duci tu singurel unde trebuie ;)

Daca ai citit pana aici iti multumesc si te rog sa nu iei in considerare ce am scris ca pe o lectie de viata, e doar parearea mea nu e un "asa trebuie sa faci". Spor la treaba!

Re: C++ User Interface

Posted: 17 Aug 2013, 12:56
by Ovidiu Cucu
bu7ch3r wrote: [...]
Qt & MFC - nu e nici o diferena :)
http://www.all-freeware.com/images/full ... estore.png
[...]
...si un varf de cutit de WIC (implicit ceva habar de utilizare librarii COM), ca sa nu astepti pe aia care dezvolta MFC/QT sa se scarpine dupa cap si sa bage suport, sa zicem pentru raw-image formats.
Asta-i viata de programator. Nu poti spune "am ales inca din studentie MFC/QT/.NET/whatever-else si cu ala ies la pensie".

Subliniez programator si nu "masina de scris (cod)". :)

Re: C++ User Interface

Posted: 17 Aug 2013, 13:28
by Ovidiu Cucu
Eu cred ca in perioada de formare a unui programator, conceptul de cross-platform ar trebui lasat la urma.
E bine mai intai sa aiba habar cat de cat despre chestiile specifice sistemelor de operare.
MFC-ul e OK, fiind un wrapper destul de lite peste Windows API.
Daca din consola il arunci / se arunca direct in Qt si altel roti reinventate, ajunge in cel mai fericit caz expert in chestii gen "derivez QOu din QGaina sau vice-versa?". :)

Parere proprie si personala...

Re: C++ User Interface

Posted: 18 Aug 2013, 14:46
by cristianamarie
wxWidget e cam rateu. In momentul in care ajung la wxSizer imi vine sa arunc cu ceva pe geam. Si e doar un exemplu de doi bani, dar cu care ajungi sa te bati rapid. Diferentele dintre platforme sint destul de mari, pina la urma, si apar cind nu ai chef...Poate doar combinatia cu Python (wxPython) sa fie mai in regula. Dar in afara de un app standard nu prea ai ce face. Costul implementarii diferentelor devine prea mare decit daca as scrie o aplicatie dedicata Win, Mac sau Linux.

Re: C++ User Interface

Posted: 19 Aug 2013, 08:58
by bu7ch3r
Multi is doresc sa fi avut un ghid in momentul cand s-au apucat de programare. Multi citeau ce prindeau: manualul de utilizare de la HC(eu aveam sintez si am scris fiecare program gasit acolo, apoi m-am apucat sa-mi salvezi eu cele 10 CIRCLE si 5 INPUT pe caseta ), tin minte o carte verde in doua volume unde era cod si pentru commodore si pentru amstrad si pentru inca vreo 30 de masini. Mai era un almanah dedicat spectrum - am vazut acolo prima oara cod in qBasic, habar n-aveam ce e aia, am asteptat un an pana am prins un 286 sa scriu fenta aia de program care desena cu puncte ceva 3d. Si apoi norocul meu ca profu de info rupea c-ul si c++ si chiar stia diferentele dintre ele.
Cand am vrut sa trec de la C consola la UI mi s-a parut super complicat c++ si Visual Studio - in manualul lui Tudor Sorin era explicat ca la prosti cum sa faci un form si sa pui actiune pe un buton - dar nu m-a pasionat. In schimb, am invatzat flash, ca aia mi-a placut mie, ca era fain sa pun cerculete si sa faca animatii din click-uri (e vorba de AS 2.0 si Macromedia DW MX).
Dupa cateva luni in care inca mai vroiam sa dau click pe un butonas in flash si sa se execute aplicatia consola am inteles ca si flash-ul ala are "codul lui" - action script-ul mi s-a parut genial de simplu, iar help-ul era mura-n-gura.
Am lasat c-ul si atestatul meu era un mp3-player online - nush ce de ai intra pe net ca sa iti incarci melodiile de pe calculator si sa le asculti in flash, dar atat m-a dus capul sa fac :)
Acum ce sa-i zic, sa se apuce de flash si action script :)

Daca vreti sa radeti putin ganditi-va ce raspunsuri ar primi pe un forum de .net sau Java sau de AS...

Re: C++ User Interface

Posted: 25 Aug 2013, 20:39
by curiosul
Multumesc de raspunsuri.
Deocamdata o sa incep cu Qt pentru cateva saptamani iar dupaia o sa trec si la MFC iar dupaia o sa ma decid pe care sa ma axez mai mult.
Scopurile sunt sa fac programe ca cele date de bu7ch3r ca exemplu.

Si inca o mica intrebare pentru cine a lucrat in Qt. Eu acuma am impresia ca invat un Qt mai ascuns in sensul ca eu folosesc framework-ul respectiv doar pentru interfata. Restul codului din spatele butoanelor spre exemplu este in mare parte C/C++ . Este ceva grav in asta? Ca pana la urma este cum ati spus si voi: nu este ceva pe care sa ma axez tot restul vietii, pe cand in cazul C/C++ ramane de vazut.

Re: C++ User Interface

Posted: 26 Aug 2013, 12:37
by neagu_laurentiu
Iar pui pe C/C++ in rai si bibliotecile in iad :evil:
Limbajul are o mana de cuvinte cheie, bibliotecile au acelasi rang ("Standard C++ Library" nu e mai cu mot decat QT sau altele - decat in viziunea ta).

Re: C++ User Interface

Posted: 26 Aug 2013, 20:04
by bu7ch3r
Curiosul, e ok, planul e sa scrii cod. Dupa un timp sa te uiti la ce ai scris cu cateva luni inainte, ca sa razi:) Apoi poti sa arati codul si la altcineva, ca sa radeti impreuna. Si tot asa, dupa atata veselie, o sa se prinda ceva de tine.
Si in Qt nu e musai sa pui numai cod Qt si C++(ala nativ de care vorbesti), eu mai bag cate un include windows.h in proiecte daca-mi trebuie ceva din windows.h si nu vreau ca binarul ala sa ajunga pe linux sau mai stiu eu ce suporta Qt-ul....
Apoi daca o sa ai nedumeriri daca sa folosesti QString sau String ajungem la vorba lui Ovidiu, ori derivam ori nu mai derivam.
Primul task e sa faci ceva care sa compileze si apoi sa ruleze fara sa crape, din prima,
Spor la treaba!

Re: C++ User Interface

Posted: 26 Aug 2013, 20:04
by curiosul
Am inteles perfect acuma. Mersii :)

Re: C++ User Interface

Posted: 28 Aug 2013, 19:53
by Ovidiu Cucu
curiosul wrote:Am inteles perfect acuma. [...]
Serios? Nothing is perfect. :)

Re: C++ User Interface

Posted: 28 Aug 2013, 20:19
by bu7ch3r
Da, Qt nu e perfect, de exemplu dupa ce am scris si am livrat am in QT 4.7 am dat peste asta:
http://blog.qt.digia.com/blog/2010/06/1 ... -it-wrong/
Pe vremuri QThread era abstract, dar eu, daca stateam in cutia mea si scriam cod ca "monkey in the box" asta-mi trebuie.

In ce priveste codul si scrisul codului indraznesc sa pun acest link:
https://www.youtube.com/watch?v=sJHU_3NuCbw