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

Jaroslav Blagojevic jaroslav.blagojevic at gmail.com
Wed May 18 16:07:23 CEST 2022


Gui sa tabelom za listu kompleksa.

Pozdrav,

Jaroslav


On Wed, May 4, 2022 at 9:18 AM Marko Vojinovic <vmarko at ipb.ac.rs> wrote:

>
> Pozdrav Jaroslave,
>
> Super, dijalog radi odlicno. Kada korisnik izabere nesto u ComboBox-u,
> popuni dimenziju i ime, i klikne na ok, otvori se prozor za prikaz
> kompleksa u kome nesto pise.
>
> 'Ajde sada kao sledeci zadatak napravi tabelu u glavnom prozoru (u velikom
> polju ispod menija i toolbar-a), tako da kada korisnik klikne na ok u
> dijalogu, da se (osim otvaranja onog prozora za prikaz kompleksa) popuni i
> jedan red u toj tabeli, sa imenom i dimenzijom kompleksa koje je korisnik
> zadao.
>
> Ideja je da mogu recimo vise puta zaredom da selektujem meni File -> New,
> i da svaki put u dijalogu drugacije setujem ComboBox i popunim polja za ime
> i dimenziju, pa da mi se svaki put otvori nov prozor za prikaz, i da se
> istovremeno svaki put doda po jedan nov red u toj tabeli u glavnom prozoru.
>
> Ilustrovao sam tu tabelu na onoj mock-up slici celog gui-ja koju sam
> onomad poslao.
>
> :-)
> 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 Mon, 2 May 2022, Jaroslav Blagojevic wrote:
>
> > 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
> >
> >
> >--
> 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/20220518/fea73c54/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gui.zip
Type: application/x-zip-compressed
Size: 5523 bytes
Desc: not available
URL: <http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/attachments/20220518/fea73c54/gui-0001.zip>


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