Line Edits Eksempel.

Linjearbeidet eksempelet viser de mange matene QLineEdit kan brukes til, og viser effekten av ulike egenskaper og validatorer pa inngang og utgang levert av brukeren.

Eksemplet bestar av en enkelt Window-klasse, som inneholder et utvalg av linjearbeid med forskjellige inngangsbegrensninger og visningsegenskaper som kan endres ved a velge elementer fra kombinasjonsbokser. A presentere disse sammen hjelper utviklere til a velge passende egenskaper som skal brukes med linjearbeid, og gjor det enkelt a sammenligne effektene av hver validator pa brukerinngang.

Window Class Definition.

Vinduet klassen arver QWidget og inneholder en konstruktor og flere spor:

Sporene brukes til a oppdatere typen validator som brukes for en gitt linje redigering nar en ny validator er valgt i tilhorende kombinasjonsboksen. Linjearbeidene lagres i vinduet for bruk i disse sporene.

Implementering av vindueklasse.

Vinduekonstruksjonen brukes til a sette opp linjebeskrivelser, validatorer og comboboxer, koble signaler fra komboboxene til spor i vinduet Klasse, og ordne barn widgets i oppsett.

Vi begynner med a lage en gruppekasse for a holde en etikett, combobox og line edit, slik at vi kan demonstrere egenskapen QLineEdit :: echoMode:

Pa dette tidspunktet har ingen av disse widgets blitt arrangert i layouter. Til slutt vil echoLabel, echoComboBox og echoLineEdit plasseres i en vertikal layout inne i echoGroup-gruppeboksen.

Pa samme mate konstruerer vi gruppebokser og samlinger av widgets for a vise effektene av QIntValidator og QDoubleValidator pa innholdet i linjearbeidet:

Tekstjustering er demonstrert av en annen gruppe av widgets:

QLineEdit stotter bruk av inngangsmasker. Disse tillater bare brukeren a skrive inn tegn i linjearbeidet som folger en enkel spesifikasjon. Vi bygger en gruppe widgets for a demonstrere et utvalg av forhandsdefinerte masker:

En annen nyttig funksjon av QLineEdit er dens evne til a gjore innholdet skrivebeskyttet. Denne egenskapen brukes til a kontrollere tilgangen til en linjearbeid i folgende gruppe widgets:

Na som alle barn widgets er blitt konstruert, kobler vi signaler fra comboboxene til spor i Window-objektet:

Hver av disse forbindelsene bruker QComboBox :: activated () signalet som gir et heltall til sporet. Dette vil bli brukt til a effektivt gjore endringer i riktig linje redigering i hvert spor.

Vi plasserer hver combobox, linje redigering og etikett i et layout for hver gruppe boks, begynner med oppsettet for echoGroup gruppeboksen:

De andre oppsettene er konstruert pa samme mate:

Til slutt plasserer vi hver gruppeboks i en rutenettoppsett for Window-objektet og angir vinduetittel:

Sporene svarer pa signaler som sendes ut nar komboboxene endres av brukeren.

Nar comboboxen for Echo-gruppeboksen endres, kalles echoChanged () -sporet:

Sporet oppdaterer linjearbeidet i samme gruppeboks for a bruke en ekkomodus som tilsvarer oppforingen som er beskrevet i kombinasjonsboksen.

Nar kombinasjonsboksen for Validator-gruppeboksen endres, kalles validatorChanged () -sporet:

Sporet enten skaper en ny validator for linjedigeringen som skal brukes, eller den fjerner validatoren i bruk ved a ringe QLineEdit :: setValidator () med nullpekeren. Vi fjerner linjearbeidet i dette tilfellet for a sikre at den nye validatoren forst blir gitt gyldig inngang for a jobbe med.

Nar kombinasjonsboksen for gruppen Justeringsgruppe er endret, kalles alignmentChanged () -sporet:

Dette endrer maten teksten vises pa i linjebeskrivelsen for a korrespondere med beskrivelsen valgt i kombinasjonsboksen.

InndataMaskChanged () -handtaket handterer endringer i kombinasjonsboksen i gruppefeltet Inngangsmask:

Hver oppforing i den aktuelle kombinasjonsboksen er knyttet til en inngangsmaske. Vi setter en ny maske ved a kalle QLineEdit :: setMask () -funksjonen med en passende streng; masken er deaktivert hvis en tom streng er brukt.

AccessChanged () -sporet handterer endringer i comboboxen i Access-gruppen-boksen:

Her forbinder vi bare False og True oppforingene i comboboxen med falske og sanne verdier som skal overfores til QLineEdit :: setReadOnly (). Dette gjor det mulig for brukeren a aktivere og deaktivere innspill til linjedigering.