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

Jaroslav Blagojevic jaroslav.blagojevic at gmail.com
Wed Apr 20 17:06:42 CEST 2022


Forma za seed-ovanje kompleksa. Nije još povezana sa kodom.

Pozdrav,

Jaroslav


On Tue, Apr 5, 2022 at 9:06 PM Marko Vojinovic <vmarko at ipb.ac.rs> wrote:

>
> Ok, evo jedan update vezano za gui --- pre svega da Jaroslav ima bolji
> osecaj sta treba da napravi, a i za vas ostale ako imate neku ideju ili
> sugestiju da se nesto izmeni ili doda.
>
> Vodio sam se onim "jedna slika 1000 reci", pa sam nacrtao mock-up cele
> ideje kako gui treba da izgleda i koje elemente da sadrzi. Slika je u
> attachment-u.
>
> Nisam mnogo spretan sa crtanjem, ali na slici treba da bude ilustracija
> svih glavnih elemenata gui-ja. Osnovna aplikacija je "Triangulator GUI"
> prozor --- on ima menije na vrhu, status bar na dnu, i unutra u prozoru
> tabelu sa spiskom instanciranih kompleksa. Svaki kompleks se instancira
> bilo ispocetka (pomocu "File -> New" menija), ili se ucita neki postojeci
> iz fajla (pomocu "File -> Open" menija). Elementi tabele su
> self-explanatory, s tim da se u "Actions" koloni nalaze "dugmici" kojima se
> pozivaju odgovarajuce akcije.
>
> Dugme "Listing" treba da otvori odgovarajuci "Triangulator listing" prozor
> za dati kompleks. Dva takva su nacrtana levo, i u njima se nalaze ispisane
> tablice sa simpleksima datog kompleksa. Dugme "Visualiser" otvara
> "Triangulator visualiser" prozor (levo dole), u kome se nalazi
> wireframe-slika celog kompleksa, kao i slajderi kojima se kontrolisu
> raznorazni parametri za embedding i crtanje (tu temu cemo detaljnije
> naknadno o tom potom).
>
> U Listing prozorima, pojedinacni simpleksi na spisku (brojevi u zagradama)
> treba da budu klikabilni. Klikom na neki simpleks treba da se otvori njegov
> "Triangulator Inspector" prozor. Dva takva prozora su nacrtana desno, za
> dva razlicita simpleksa. Inspector treba da prikaze sve podatke koji se
> znaju o datom simpleksu, na slici sam pokusao da to ilustrujem. Simpleksi u
> "Neighbors" tablici treba takodje da budu klikabilni, i treba da otvore nov
> Inspector prozor, isto kao i iz Listing prozora. Osim ovoga, Inspector
> prozor sadrzi nekoliko dugmica za akcije koje su moguce nad datim
> simpleksom --- editovanje vrednosti boja, dodavanje/brisanje novih boja,
> Pahnerove poteze, i sve ostale operacije nad simpleksima koje cemo kasnije
> jos praviti.
>
> Konacno, dole u sredini se nalazi i "Triangulator log" prozor, koji treba
> da prikazuje log-fajl za celu datu sesiju. To sluzi jedino za ispisivanje i
> pregled log-a, i treba samo da se azurira redovno kad se nesto novo doda u
> log. Prozor za log je najzgodnije otvarati po potrebi pomocu "View -> View
> log" menija glavnog prozora.
>
> To je okvirno to. Naravno, tu treba da bude i gomila kojekakvih
> dialog-box-eva za otvaranje fajla, snimanje, dodavanje boja, provere "are
> you sure", itdisl. Ali osnovni dizajn gui-ja se sastoji od ovih pet tipova
> prozora koje sam nacrtao. Kasnije, kako budemo dodavali raznorazne
> funkcionalnosti, kacicemo na ove prozore jos dodatne raznorazne dugmice,
> slajdere, ikonice, ovo, ono., ali generalna struktura treba da izgleda
> ovako.
>
> Javite utiske, i ako imate bilo kakva pitanja ili sl.
>
> :-)
> 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 Sun, 3 Apr 2022, Marko Vojinovic wrote:
>
> >
> > 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
> >>
> >>
> >--
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/attachments/20220420/7df875b9/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gui.zip
Type: application/x-zip-compressed
Size: 4224 bytes
Desc: not available
URL: <http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/attachments/20220420/7df875b9/gui-0001.zip>


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