Qt-dokumentasjon.

Qt-dokumentasjon.

Oversikt.

I eksempelet Egendefinert type viste vi hvordan du integrerer egendefinerte typer med meta-objekt-systemet, slik at de kan lagres i QVariant-objekter, skrevet ut i feilsokingsinformasjon og brukt i signalsporkommunikasjon.

I dette eksemplet demonstrerer vi at forberedelsene til Meldingsklassen og dens erkl ring med Q_DECLARE_METATYPE () gjor at den kan brukes med direkte signal-slotsforbindelser. Vi gjor dette ved a opprette en Windows-klasse som inneholder signaler og spor hvis signaturer inkluderer Meldingsargumenter.

Definisjonene pa vinduet og meldingen.

Vi definerer en enkel Vindu klasse med et signal og offentlig spor som tillater at et Meldingsobjekt sendes via en signal-slot-tilkobling:

Vinduet vil inneholde en tekstredigerer for a vise innholdet i en melding og en trykknapp som brukeren kan klikke for a sende en melding. For a lette dette definerer vi ogsa sendMessage () -sporet. Vi holder ogsa et Meldingseksempel i denne private variabelen, som inneholder den faktiske meldingen som skal sendes.

Meldingsklassen er definert pa folgende mate:

Typen er erkl rt til metatypesystemet med Q_DECLARE_METATYPE () makroen:

Dette vil gjore typen tilgjengelig for bruk i direkte signal-slotsforbindelser.

Window Class Implementation.

Vinduet Konstruktoren setter opp et brukergrensesnitt som inneholder en tekstredigerer og en trykknapp.

Knappens klikkede () -signal er koblet til vinduet sendMessage () -sporet, som sender meldingen MessageSent (Message) med meldingen som holdes i denneMessage-variabelen:

Vi implementerer et spor for a tillate at meldingen mottas, og dette lar oss ogsa sette meldingen i vinduet programatisk:

I denne funksjonen tildeler vi bare den nye meldingen til denneMessage og oppdaterer teksten i redaktoren.

Gjor tilkoblingen.

I eksempelets viktigste () -funksjon, utforer vi forbindelsen mellom to forekomster av vindueklassen:

Vi setter meldingen for det forste vinduet og kobler meldingsSent (Message) -signalet fra hvert vindu til den andre setterMessage (Message) -sporet. Siden signalene og spormekanismen bare er opptatt av typen, kan vi forenkle signaturene til bade signalet og sporet nar vi foretar tilkoblingen.

Nar brukeren klikker pa Send melding-knappen i begge vinduer, vil meldingen bli sendt ut i et signal som det andre vinduet vil motta og vise.

Videre lesning.

Selv om den egendefinerte Meldingstypen kan brukes med direkte signaler og spor, ma et ekstra registreringssteg utfores dersom du vil bruke det med signalforbindelser med ko i ko. Se Eksempel pa kjopt egendefinert type for detaljer.

Mer informasjon om bruk av egendefinerte typer med Qt finnes i dokumentet Opprett egendefinert Qt-typer.



Hallo! Vil du spille i det mest populære kasinoet? Vi samlet det for deg. Gå her nå!