[QGHG-it-dev-list] Zadatak 6 - konstruisanje GUI-ja

Marko Vojinovic vmarko at ipb.ac.rs
Sun Apr 3 04:51:57 CEST 2022


Odlicno, super! Uspeo sam da import-ujem fajlove u qtcreator projekt, i rade mi build i run bez problema. Upload-ovacu ove fajlove na GitHb, sve sto se tice gui-ja ce da bude u direktorijumu "gui" na GitHub-u.

Posto ovaj proof-of-concept kod radi lepo, moj predlog je da sad pocnes da implementiras onu funkcionalnost (1)-(3) iz prethodnog e-mail-a.

Za pocetak, kad korisnik klikne na File -> New, treba da se otvori dialog-box, gde bi iz drop-down liste izabrao koji pocetni kompleks zeli da instancira, koja mu je dimenzija i kako ce da se zove (integer D i string "name" u klasi SimpComp). Dialog-box treba da ima standardne tastere "Ok" i "Cancel" na koje korisnik klikne kad popuni podatke. Onda na osnovu tih podataka treba pozvati odgovarajucu seed f-ju, obojiti ceo rezultujuci kompleks UniqueID bojama, i ispisati ga pomocu print_compact u ovaj prozor sa tekstualnim poljem. Taj prozor treba da nosi ime kompleksa (string name) koje je korisnik zadao, da bi se razlikovao od ostalih prozora za druge komplekse (korisnik moze da ih instancira vise ako zeli).

Takodje, bilo bi dobro da tekstualno polje u tom prozoru menja svoje dimenzije kada se prozor resize-uje, tako da "prati" velicinu samog prozora. Ako sadrzaj polja ne moze da stane u polje, treba da se pojave horizontalni i vertikalni scroll-bar-ovi, da sadrzaj u polju moze da se pomera tamo-amo.

Posle cemo da razradjujemo dalje ceo gui interfejs, imam jos neke ideje za taj bazican izgled.

Sve relevantne klase i f-je iz biblioteke koje se pozivaju iz gui-ja su deklarisane u triangulator.h fajlu, pa prosto njega treba da include-ujes u gui, i tokom kompajliranja da link-ujes biblioteku triangulator-library.a (sto je zamisao trajnog resenja), ili da kompajliras i biblioteku i gui u jednom mahu, ako ti je lakse (zasad). Samo obrati paznju da konfigurises ceo direktorijum u kome je triangulator.h kao putanju za include fajlove, jer ce triangulator.h interno da include-uje gomilu drugih .h fajlova, pa da kompajler ume da nadje sve njih.

Kasnije cemo da napravimo Makefile, kako za gui tako i za biblioteku, da automatizujemo ceo build postupak itd. Moj qtcreator vec pravi neki Makefile, ali je taj veoma podesen za Linux platformu i moju lokalnu strukturu direktorijuma, pa nije zgodan, nego cemo da napravimo jedan novi "kako treba", kad dodje vreme...

:-)
Marko


Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail:    vmarko at ipb.ac.rs



On Thu, 31 Mar 2022, Jaroslav Blagojevic wrote:

> Evo, gui za početak.Qt downloadujete sa https://www.qt.io/download -> go open source -> download the qt online installer
> Treba vam qtcreator, qtdesigner, ja sam instalirao qt 6.2.3 biblioteke. Može sve (~30 gb), a dovoljno je i qtcore, qtwidgets, qtgui, a trebaće nam i qt opengl ili qt 3d.
> Takođe vam treba nalog https://login.qt.io/login -> Create Account. Ja im nisam ostavio telefon.
> Avast prijavljuje virus za qtdesignstudio, na webu kažu da je to uglavnom lažno obaveštenje. U svakom slučaju vam ne treba.
> 
> Posle toga napravite novi projekat. U Visual Studio-u 2019, instalirate na extensions -> manage extensions -> qt visual studio tools (izaberite putanju do msvc2019_64\6.2.3\bin qmake).
> Posle toga možete New Project -> kucate qt u search bar-u -> qt widgets application. Za Linux pretpostavljam da može qtcreator, napravite novi qt widgets/qmake projekat. Kod u prilogu
> (pazite da ne prekopirate preko triangulator-ovog main.cpp), kopirajte preko toga što ste napravili.
> 
> Pozdrav,
> 
> Jaroslav
> 
> 
> 
> On Fri, Feb 11, 2022 at 11:01 PM Marko Vojinovic <vmarko at ipb.ac.rs> wrote:
>
>       Poceti sa konstrukcijom GUI-ja. Za pocetak, umesto crteza na ekranu, GUI treba da realizuje sledece mogucnosti:
>
>       (1) Da meni opcija File -> New pita korisnika da izabere instanciranje: duzi, trougla, tetraedra, D-simpleksa, D-sfere (uz dopunsko pitanje za vrednost D), i na osnovu
>       korisnikovog izbora da pozove odgovarajucu seed f-ju.
>
>       (2) Kada se seed f-ja izvrsi, obojiti kompleks bojom UniqueID (f-ja UniqueIDColor::colorize_entire_complex() iz zadatka 2), pa zatim otvoriti manji prozor (za novo-kreirani
>       kompleks), i u tom prozoru ispisati redom sve k-simplekse metodom slicno kao u zadatku 4 (ali bez ispisivanja podsuseda). Tablicu organizovati rastuce po nivoima k, slicno
>       kao drvo direktorijuma i fajlova u file-manageru (da spisak simpleksa nivoa k bude moguce "kolapsirati" i "ekspandirati" kliktanjem).
>
>       (3) Svaki simpleks ispisan na spisku u prozoru iz (2), npr. "(1-2-4)", treba da bude klikabilan --- kliktanje na njega treba da otvori tzv. "inspector" prozor za taj
>       konkretni k-simpleks, u kome ce da budu pobrojane sve boje i njihove vrednosti koje taj k-simpleks nosi. Za sada su UniqueID i Boundary jedine boje koje ce se pojaviti na
>       tom spisku, ali kasnije cemo dodavati i druge boje, pa algoritam treba prosto da prodje kroz spisak svih boja i sve ih pobroji jednu ispod druge.
>
>       Za inspektor-prozor planiramo dodatne funkcionalnosti za kasnije (menjanje vrednosti boja, ispis tablice suseda datog k-simpleksa, dugmad za primenjivanje raznih f-ja nad
>       simpleksom, itd). Sa druge strane, prozor u kome ispisujemo tablicu svih simpleksa u kompleksu nece imati neku narocitu dodatnu funkcionalnost (koristicemo ga dok ne
>       implementiramo prozor koji ce da crta ceo kompleks na ekranu, umesto ispisivanja tablice simpleksa).
> 
>
>       :-)
>       Marko
> 
>
>       Dr. Marko Vojinovic
>       Group for Gravitation, Particles and Fields
>       Institute of Physics
>       University of Belgrade
>       ======================
>       home page: www.markovojinovic.com
>       e-mail:    vmarko at ipb.ac.rs
> 
>
>       --
>       QGHG-it-dev-list mailing list
>       QGHG-it-dev-list at ipb.ac.rs
>       http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
> 
> 
>


More information about the QGHG-it-dev-list mailing list