[QGHG-it-dev-list] Zadatak 6 - konstruisanje GUI-ja
Jaroslav Blagojevic
jaroslav.blagojevic at gmail.com
Mon May 2 15:19:55 CEST 2022
Poslao si samo meni, pa forward-ujem: >> Da, video sam i to, propustio sam
da prokomentarisem. Odlicno! ;-)
>> Hristos voskrese!
U prilogu, forma sa combo-boxom za izbor kompleksa, i različiti sadržaj
prikaza kompleksa u odnosu na izbor.
Pozdrav,
Jaroslav
On Mon, Apr 25, 2022 at 5:36 PM Jaroslav Blagojevic <
jaroslav.blagojevic at gmail.com> wrote:
> Takođe, polje za prikaz kompleksa se resize-uje sa formom.
>
> Pozdrav,
>
> Jaroslav
>
>
> On Thu, Apr 21, 2022 at 9:35 PM Marko Vojinovic <vmarko at ipb.ac.rs> wrote:
>
>>
>> Pozdrav Jaroslave,
>>
>> Hvala za formu, lepo izgleda. Samo jedna sugestija --- mozda bi bilo
>> bolje da umesto pojedinacnih dugmica za seed f-je stavis onaj "Combo Box",
>> tako da korisnik otvori spisak i izabere jednu seed f-ju sa tog spiska. U
>> buducnosti cemo dodavati jos seed f-ja, pa je zgodnije da ih prosto
>> dodajemo na taj spisak u Combo Box, nego da dodajemo nove dugmice svaki put.
>>
>> Btw, mozes za pocetak da namestis da se u prozoru za stampanje odstampa
>> razlicit tekst za razlicite izbore seed f-ja iz forme, cisto da imamo
>> osecaj da taj izbor nesto radi --- bar dok ne budes dodao pozive na prave
>> seed f-je i f-je za stampanje.
>>
>> :-)
>> 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 Wed, 20 Apr 2022, Jaroslav Blagojevic wrote:
>>
>> > 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
>> >
>> >
>> >--
>> 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/20220502/8ee3abdc/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gui.zip
Type: application/x-zip-compressed
Size: 4053 bytes
Desc: not available
URL: <http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/attachments/20220502/8ee3abdc/gui-0001.zip>
More information about the QGHG-it-dev-list
mailing list