Qt-dokumentasjon.

Qt-dokumentasjon.

QStyledItemDelegate-klassen gir skjerm- og redigeringsfunksjoner for dataposter fra en modell. Mer.

Offentlige funksjoner.

Reimplemented Public Functions.

7 offentlige funksjoner arvet fra QAbstractItemDelegate 29 offentlige funksjoner arvet fra QObject.

Beskyttede funksjoner.

Reimplemented Protected Functions.

8 beskyttede funksjoner arvet fra QObject.

Ekstra arvelige medlemmer.

1 eiendom arvet fra QObject 1 offentlig slot arvet fra QAbstractItemDelegate 1 offentlig slot arvet fra QObject 3 signaler arvet fra QAbstractItemDelegate 1 signal arvet fra QObject 7 statlige offentlige medlemmer arvet fra QObject.

Detaljert beskrivelse.

QStyledItemDelegate-klassen gir skjerm- og redigeringsfunksjoner for dataposter fra en modell.

Nar du viser data fra modeller i Qt-elementvisninger, for eksempel en QTableView, trekkes de enkelte elementene av en delegat. Nar et element er redigert, gir det ogsa en editor-widget, som er plassert overst pa elementvisningen mens redigering finner sted. QStyledItemDelegate er standarddelegatet for alle Qt-elementvisninger, og er installert pa dem nar de er opprettet.

QStyledItemDelegate-klassen er en av modell / visningsklassene og er en del av Qts modell / visningsramme. Delegaten tillater visning og redigering av elementer som skal utvikles uavhengig av modell og visning.

Dataene til elementene i modellene tilordnes en ItemDataRole; hvert element kan lagre en QVariant for hver rolle. QStyledItemDelegate implementerer skjerm og redigering for de vanligste datatypene som forventes av brukere, inkludert boolesker, heltall og strenger.

Dataene vil bli tegnet annerledes avhengig av hvilken rolle de har i modellen. Folgende tabell beskriver roller og datatyper delegatene kan handtere for hver av dem. Det er ofte tilstrekkelig a sikre at modellen returnerer passende data for hver av rollene for a bestemme utseendet pa elementer i visninger.

Redaktorer er opprettet med en QItemEditorFactory; en standard statisk forekomst levert av QItemEditorFactory er installert pa alle elementdelegater. Du kan angi en tilpasset fabrikk med setItemEditorFactory () eller angi en ny standard fabrikk med QItemEditorFactory :: setDefaultFactory (). Det er dataene lagret i elementmodellen med EditRole som er redigert. Se QItemEditorFactory-klassen for en mer hoyt niva introduksjon til elementredigeringsfabrikker. Fargearitorfabrikkens eksempel viser hvordan du oppretter egendefinerte redaktorer med en fabrikk.

Subclassing QStyledItemDelegate.

Hvis delegenten ikke stotter maleri av datatypene du trenger eller du vil tilpasse tegningen av elementer, ma du underklasse QStyledItemDelegate, og reimplement paint () og possibly sizeHint (). Funksjonen paint () kalles individuelt for hvert element, og med sizeHint () kan du angi hinten for hver av dem.

Nar du reimplementerer maling (), vil man typisk handtere datatyper man onsker a tegne og bruke superklassimplementering for andre typer.

Maleri av boksens indikatorer utfores av den nav rende stilen. Stilen spesifiserer ogsa storrelsen og de avgrensende rektanglene der du skal tegne dataene for de forskjellige datatrollene. Begrensningsrektangelet til selve gjenstanden beregnes ogsa av stilen. Nar du tegner allerede stottede datatyper, er det derfor en god ide a sporre stilen for disse begrensende rektanglene. QStyle klassebeskrivelsen beskriver dette mer detaljert.

Hvis du onsker a endre noen av de begrensende rektanglene som er beregnet av stilen eller maleri av boksene, kan du underklasse QStyle. V r imidlertid oppmerksom pa at storrelsen pa elementene ogsa kan pavirkes ved a reimplement sizeHint ().

Det er mulig for en tilpasset delegat a gi redaktorer uten bruk av en redigeringsvarefabrik. I dette tilfellet ma folgende virtuelle funksjoner reimplementeres:

createEditor () returnerer widgeten som brukes til a endre data fra modellen og kan reimplemented for a tilpasse redigeringsadferd. setEditorData () gir widgeten med data for a manipulere. updateEditorGeometry () sikrer at editoren vises riktig med hensyn til elementvisningen. setModelData () returnerer oppdaterte data til modellen.

Star Delegate-eksempelet oppretter redaktorer ved a implementere disse metodene.

QStyledItemDelegate vs QItemDelegate.

Siden Qt 4.4 er det to delegatklasser: QItemDelegate og QStyledItemDelegate. Standard delegat er imidlertid QStyledItemDelegate. Disse to klassene er uavhengige alternativer til maleri og gir redaktorer til elementer i visninger. Forskjellen mellom dem er at QStyledItemDelegate bruker den nav rende stilen til a male sine gjenstander. Vi anbefaler derfor at du bruker QStyledItemDelegate som grunnklass nar du implementerer egendefinerte delegater eller nar du arbeider med Qt stilark. Koden som kreves for hver klasse, skal v re lik med mindre den tilpassede delegaten trenger a bruke stilen til tegning.

Hvis du onsker a tilpasse maleriet av elementvisninger, bor du implementere en egendefinert stil. Vennligst se dokumentasjonen til QStyle-klassen for detaljer.

Medlemsfunksjon Dokumentasjon.

QStyledItemDelegate :: QStyledItemDelegate (QObject * foreldre = 0)

Konstruerer en objektdelegator med den oppgitte overordnede.

QStyledItemDelegate ::

Odelegger elementet delegat.

[virtuell] QWidget * QStyledItemDelegate :: createEditor (QWidget * foreldre, const QStyleOptionViewItem & option, const QModelIndex og indeks) const.

Returnerer widgeten som brukes til a redigere elementet angitt av indeksen for redigering. Foreldre-widgeten og stilalternativet brukes til a kontrollere hvordan editor-widgeten vises.

[virtuell] QString QStyledItemDelegate :: displayText (const QVariant & verdi, const QLocale & locale) const.

Denne funksjonen returnerer strengen som delegaten vil bruke til a vise Qt :: DisplayRole av modellen i lokalomradet. verdien er verdien av Qt :: DisplayRole som tilbys av modellen.

Standard implementeringen bruker QLocale :: toString til a konvertere verdien til en QString.

Denne funksjonen kreves ikke for tomme modellindekser, det vil si indekser hvor modellen returnerer en ugyldig QVariant.

[virtuell beskyttet] bool QStyledItemDelegate :: editorEvent (QEvent * -hendelse, QAbstractItemModel * -modell, const QStyleOptionViewItem & option, const QModelIndex og indeks)

[virtuell beskyttet] bool QStyledItemDelegate :: eventFilter (QObject * editor, QEvent * -hendelse)

Returnerer sant hvis den gitte redaktoren er en gyldig QWidget og den oppgitte hendelsen handteres; ellers returnerer false. Folgende tastetrykkhendelser handteres som standard:

I tilfelle av Tab, Backtab, Enter og Return nokkel press hendelser, er redaktorens data hentet til modellen og redaktoren er stengt. Hvis hendelsen er en Tab-tast, trykker du pa visningen et redigeringsverktoy i neste element i visningen. Pa samme mate, hvis hendelsen er en Backtab-tast, trykker du pa visningen et redigeringsverktoy pa forrige element i visningen.

Hvis hendelsen er et Esc-tast-presseventyr, er editoren stengt uten a forplikte sine data.

[virtuell beskyttet] ugyldig QStyledItemDelegate :: initStyleOption (QStyleOptionViewItem * -alternativ, const QModelIndex og indeks) const.

Initialiser alternativet med verdiene ved hjelp av indeksindeksen. Denne metoden er nyttig for underklasser nar de trenger en QStyleOptionViewItem, men vil ikke fylle ut all informasjonen selv. Denne funksjonen vil sjekke versjonen av QStyleOptionViewItem og fylle ut tilleggsverdiene for en QStyleOptionViewItemV2, QStyleOptionViewItemV3 og QStyleOptionViewItemV4.

QItemEditorFactory * QStyledItemDelegate :: itemEditorFactory () const.

Returnerer redigeringsfabrikken som brukes av varemerket. Hvis ingen redigeringsfabrik er satt, returnerer funksjonen null.

[virtual] void QStyledItemDelegate :: paint (QPainter * maleren, const QStyleOptionViewItem & option, const QModelIndex og indeks) const.

Gjor delegaten ved hjelp av den oppgitte maleren og stilalternativet for varen spesifisert av indeksen.

Denne funksjonen maler varen med visningen QStyle.

Nar du reimplementerer maling i en underklasse. Bruk initStyleOption () for a sette opp alternativet pa samme mate som QStyledItemDelegate; alternativet vil alltid v re en forekomst av QStyleOptionViewItemV4. Vennligst se sin klassebeskrivelse for informasjon om innholdet.

Nar det er mulig, bruk alternativet mens du maler. Spesielt den reelle variabelen for a bestemme hvor a tegne og dens tilstand for a avgjore om den er aktivert eller valgt.

Etter maleri, bor du sorge for at maleren returneres til sin tilstand det ble levert i da denne funksjonen ble kalt. For eksempel kan det v re nyttig a ringe QPainter :: lagre () for maleri og QPainter :: restore () etterpa.

[virtual] void QStyledItemDelegate :: setEditorData (QWidget * editor, const QModelIndex og indeks) const.

Setter dataene som skal vises og redigeres av redaktoren fra datamodellelementet angitt av modellindeksen.

Standard implementeringen lagrer dataene i redigeringsdisplayets brukeregenskaper.

void QStyledItemDelegate :: setItemEditorFactory (QItemEditorFactory * fabrikk)

Angir redigeringsfabrikken som skal brukes av objektdelegatet for a v re fabrikken angitt. Hvis ingen editor-fabrikk er satt, vil elementdelegatet bruke standardredigeringsfabrikken.

[virtual] void QStyledItemDelegate :: setModelData (QWidget * editor, QAbstractItemModel * modell, const QModelIndex og indeks) const.

Far data fra editor-widgeten og lagrer den i den angitte modellen ved elementindeksen.

Standard implementering far verdien som skal lagres i datamodellen fra redigeringsdisplayets brukeregenskaper.

[virtuell] QSize QStyledItemDelegate :: sizeHint (const QStyleOptionViewItem & option, const QModelIndex og indeks) const.

Returnerer storrelsen som kreves av delegaten for a vise varen som er angitt av indeksen, tatt hensyn til stilinformasjonen som tilbys av alternativet.

Denne funksjonen bruker visningen QStyle for a bestemme storrelsen pa elementet.

[virtual] void QStyledItemDelegate :: updateEditorGeometry (QWidget * editor, const QStyleOptionViewItem & option, const QModelIndex og indeks) const.

Oppdaterer redaktoren for elementet angitt av indeksen i henhold til stilalternativet som er gitt.


Hi! Want to play in the most lucky casino? We found it for you. Play here now!