Na ovoj stranici

Koristite popise i druge modele podataka

Aplikacije obično moraju obrađivati i prikazivati podatke organizirane u prikaze popisa ili mreže. Modeli, prikazi i delegati koriste se u tu svrhu. Oni modulariziraju vizualizaciju podataka kako bi vam omogućili kontrolu nad različitim aspektima podataka. Na primjer, prikaz popisa možete zamijeniti prikazom mreže uz manje izmjene u podacima. Slično tome, enkapsulacija instance podataka u delegatu omogućuje programerima da odrede kako će se podaci prikazati ili obraditi.

Model sadrži podatke i njihovu strukturu. Postoji nekoliko komponenti za izradu različitih vrsta modela. Prikaz je spremnik koji prikazuje podatke u obliku popisa ili mreže, odnosno duž staze. Delegat određuje kako bi se podaci trebali prikazati u prikazu. Delegat uzima svaki dio podataka u modelu i enkapsulira ga. Podaci su zatim dostupni putem delegata.

Za vizualizaciju podataka svojstvo modela pogleda veže se za model, a svojstvo delegata za komponentu.

Za više informacija pogledajte Modeli i prikazi u Qt Quick u.

Pregledi popisa i mrežni pregledi

Stvorite instance komponenti List View i Grid View kako biste organizirali instance drugih komponenti u formatu popisa ili mreže. Dostupne su u Components > Default Components > Views.

List View organizira ostale komponente u obliku popisa, dok ih Grid View organizira u obliku mreže. Po zadanom se komponente u prikazu popisa i mreže vertikalno protežu s lijeva na desno. Horizontalno su raspoređene s lijeva na desno, a vertikalno odozgo prema dolje.

Orijentaciju prikaza popisa možete promijeniti u polju Orientation, a smjer prikaza mreže u polju Flow. Smjer rasporeda možete promijeniti u polju Layout direction. Postavljanjem vrijednosti za ta svojstva možete stvoriti različite rasporede.

Prikaži svojstva u popisu

Za prikaz popisa možete odrediti razmak između stavki popisa u polju Spacing. Za mrežni prikaz možete odrediti širinu i visinu svake ćelije u poljima W i H.

Svojstva prikaza mreže.

Odaberite Navigation wraps kako biste naveli da se navigacija tipkom prebacuje i premješta odabir na sljedeći redak ili ćeliju na drugom kraju prikaza kada stigne do kraja prikaza.

I prikazi popisa i mreže podržavaju prirodno listanje povlačenjem.

Vrijednost polja Snap mode određuje kako će se pomicanje prikaza zaustaviti nakon povlačenja ili klizanja. Po zadanom se prikaz zaustavlja bilo gdje unutar vidljivog područja. Ako odaberete SnapToRow, prikaz se zaustavlja s redom (ili stupcem za mrežni prikaz pri pomicanju odozgo prema dolje) poravnatim s početkom prikaza. Ako odaberete SnapOneRow, prikaz će se zaustaviti najviše jedan redak ili stupac udaljen od prvog vidljivog retka u trenutku otpuštanja tipke miša. Ova je opcija osobito korisna za pomicanje jedne stranice odjednom.

Predmemorija delegata

Vrijednost polja Cache određuje hoće li se delegati zadržati izvan vidljivog područja prikaza.

Ako je ova vrijednost veća od nule, prikaz može zadržati onoliko instanciranih delegata koliko stane u navedenu predmemoriju. Na primjer, ako je u vertikalnom prikazu delegat visok 20 piksela, postoji tri stupca i predmemorija je postavljena na 40, tada se može stvoriti ili zadržati do šest delegata iznad i ispod vidljivog područja. Pohranjeni delegati stvaraju se asinkrono, što omogućuje njihovo stvaranje tijekom više sličica i smanjuje vjerojatnost preskakanja sličica. Kako bi se poboljšala izvedba iscrtavanja, delegati izvan vidljivog područja se ne iscrtavaju.

Zadana vrijednost ove svojstva ovisi o platformi, ali obično je veća od nule. Negativne vrijednosti se zanemaruju.

Predmemorija nije pikselni spremnik. Ona samo pohranjuje dodatne instancirane delegate.

Napomena: Postavljanje svojstva Cache nije zamjena za stvaranje učinkovitih delegata. Može poboljšati glatkoću ponašanja pri pomicanju na štetu dodatne potrošnje memorije. Što je manje stavki i veza u delegatu, brže se prikaz može pomicati. Važno je shvatiti da postavljanje predmemorije samo odgađa probleme uzrokovane delegatima koji se sporo učitavaju, a nije rješenje za taj problem.

Isticanje prikaza

U odjeljcima List View Highlight i Grid View Highlight možete navesti svojstva za isticanje stavki u prikazima.

Izdvojiti nekretnine u prikazu popisa.

Trenutni element u prikazu popisa ili mreže istaknut je ako postavite vrijednost polja Range na ApplyRange ili StrictlyEnforceRange. Kada odaberete primjenu raspona, prikaz pokušava održati istaknuto područje unutar raspona. Međutim, istaknuto područje može izaći izvan raspona na krajevima prikaza ili zbog interakcije mišem. Kada odaberete nametanje raspona, naglasak nikada ne izlazi izvan raspona. Trenutni se element mijenja ako bi radnja tipkovnice ili miša uzrokovala pomicanje naglaska izvan raspona.

Vrijednosti polja Preferred begin i Preferred end utječu na položaj trenutnog stavka kada se prikaz pomiče. Na primjer, ako trenutno odabrani stavak treba ostati u sredini prikaza pri pomicanju, postavite vrijednosti početka i kraja na gornje i donje koordinate mjesta gdje bi se srednji stavak nalazio. Ako se trenutni element promijeni programski, prikaz će se automatski pomaknuti tako da trenutni element bude u sredini prikaza. Vrijednost početka mora biti manja od vrijednosti kraja.

Odaberite Follows current kako biste omogućili prikazu upravljanje isticanjem. Isticanje se glatko pomiče kako bi pratilo trenutni element. U suprotnom, prikaz ne pomiče isticanje i svaki pomak mora implementirati isticanje.

Vrijednosti polja Move duration, Move velocity, Resize duration i Resize velocity kontroliraju brzinu animacija pomicanja i promjene veličine za isticanje.

Uređivanje modela popisa

Kada dodate Grid View, List View ili Path View, automatski se dodaju ListModel i delegatska komponenta koja za svaki element u modelu stvara instancu. Za prikaze mreže i popisa možete uređivati model popisa u Qt Design Studio.

Pregled prikaza popisa

Za uređivanje modela popisa:

  1. Povucite Grid View ili List View iz Components > Default Components > Views u prikaz Navigator ili 2D.
  2. Desnom tipkom miša kliknite prikaz u Navigator i iz kontekstnog izbornika odaberite Edit List Model kako biste otvorili uređivač modela popisa.

    Prikaz popisa u uređivaču modela popisa

  3. Dvokliknite naslove stupaca i ćelije da biste promijenili njihove vrijednosti.
  4. Koristite gumbe alatne trake za dodavanje, uklanjanje ili premještanje redaka i stupaca. U popisu svaki stupac predstavlja svojstvo, a svaki redak dodaje stavku popisa.

Možete zamijeniti zadani model i delegat drugim, složenijim modelima i delegatima u prikazu Code ili načinu rada Edit. Komponente Item Delegate i Swipe Delegate također su dostupne u Components > Qt Quick Controls.

Prikaz putanje

Komponenta Path View raspoređuje podatke koje pružaju modeli podataka na Path.

Grafički uređivač krivulja omogućuje vam precizno određivanje putanja prikaza staze, što je nezahvalan zadatak u prikazu Code ili načinu rada Edit.

Uređivač prikaza staze.

Za početak uređivanja puta dvaput kliknite prikaz puta u pogledu 2D. Uređivač sastavlja put od objekata puta PathCubic. To su kubične Bézierove krivulje do zadane pozicije s dva kontrolna točka. Povucite i ispustite kontrolne točke u pogledu 2D kako biste konstruirali krivulju.

Osim toga, putni objekti PathLine i PathQuad podržani su neizravno. Da biste segment krivulje učinili linearnim, u kontekstnom izborniku odaberite Make Curve Segment Straight.

Zadano je putanja zatvorena, što znači da su joj početna i završna točka identične. Za stvaranje odvojenih početne i završne točke za nju, kliknite desnom tipkom miša na točku uređivanja kako biste otvorili kontekstni izbornik i poništili Closed Path.

Za dodavanje međukotačaka segmentu krivulje odaberite Split Segment u kontekstnom izborniku.

U odjeljku Path View možete navesti ostala svojstva za prikaz staze. Vrijednost polja Drag margin određuje maksimalnu udaljenost od staze s koje se pokreće povlačenje mišem.

Svojstva prikaza staze.

Odaberite potvrdni okvir Interactive kako biste stavku učinili dostupnom za brzo pomicanje. Vrijednost polja Flick deceleration određuje brzinu kojom se brzo pomicanje usporava.

U polju Offset navedite koliko su stavke na putanji udaljene od svojih početnih položaja. To je realan broj u rasponu od 0 do vrijednosti polja Item count, koje prikazuje broj stavki u modelu.

U odjeljku Path View Highlight možete navesti svojstva za isticanje objekata staze.

Sažetak komponenti modela

Sljedeća tablica navodi komponente koje možete koristiti za dodavanje modela podataka u korisničke sučelje. Kolona Lokacija označava lokaciju komponente u Components u. Kolona podrške za MCU označava koje su komponente podržane na MCU-ima.

IkonaNazivLokacijaPodrška za MCUNamjena
komponenta mrežnog prikazaGrid ViewZadane komponente - PrikaziNeRešetkasta vizualizacija modela.
komponenta delegata stavkeItem DelegateQt Quick ControlsNeStandardni element prikaza koji se može koristiti kao delegat u različitim prikazima i kontrolama, kao što su ListView i ComboBox.
Komponenta prikaza popisaList ViewZadane komponente - PrikaziDaPopisna vizualizacija modela.
komponenta Prikaz stazePregled putaZadane komponente - PrikaziNeVisualizira sadržaj modela duž staze.
komponenta prikaza zavojnicaScroll ViewQt Quick ControlsNeOmogućuje listanje korisničkog sadržaja. Može se koristiti umjesto komponente za listanje ( Flickable ).
komponenta Stack ViewStack ViewQt Quick ControlsNeNavigacijski model temeljen na hrpi.
komponentni delegat stavkeSwipe DelegateQt Quick ControlsNeElement prikaza koji se može prevući ulijevo ili udesno kako bi se otkrilo više opcija ili informacija. Koristi se kao delegat u prikazima kao što je ListView.
komponenta prikaza prevlačenjaSwipe ViewQt Quick ControlsDaOmogućuje korisnicima navigaciju stranicama prevlačenjem u stranu.

Qt Quick Qt Quick Vidi također Kako: Korištenje UI komponenti, UI dizajn za uređaje s jednim dodirom i Dizajniranje UI-ja za uređaje s jednim dodirom.

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.