# Kontroller

&rune.laursen.role;

# Kontroller

Byggestenene til &kommander;-dialoger er kontrollerne. De er præcis som alle andre kontroller i &Qt; og &kde;-bibliotekerne, bortset fra at de har noget ekstra funktionalitet, som tillader dem at have en tekstassociation. Tekst er associeret med kontrollens tilstand eller dens befolkningsslot. Antallet af tilstande afhænger af kontrollen. Har en kontrol kun én tilstand, kaldes denne tilstand for standardtilstanden.

Kontroltekst bla bla

Dialogen har to specielle ltilstande til &kommander;tekst. Disse er Initiate og Destroy. De eksekveres når dialogen initieres og når den nedlægges. De beskytter mod det der kaldes race problemer ved åbning og betyder at du ikke behøver at udføre nogen specielle procedurer ved nedlægning af dialoger.

Knapgruppe

  En container der organiserer knapper i en gruppe. Der kan tilknyttes en valgfri titel ved at bruge titelegenskaben. Rammen kan justeres med lineWidth-egenskaben. Knapgruppen kan indstilles til eksklusiv ved at sætte exclusive-egenskaben til true. Det betyder at når der trykkes på én slå til-/fra-knap, sættes alle de andre slå til/fra-knapper til fra, med undtagelse af radioknapper som altid er gensidigt udelukkende, selv når gruppen er non-eksklusive. Radioknapper kan sættes til non-eksklusiv ved at bruge egenskaben radioButtonExclusive. (Jeg er ikke så sikker på at denne egenskab rent faktisk fungerer).

  Knapgrupper har en tilstand, standard.

  Kontrolteksten til en knapgruppe er tekstassociationerne til hver knap i den rækkefølge de forekommer i knapgruppen.

Afkrydsningsfelt

  Et felt der kan afkrydses til og fra. Det kan også være delvist afkrydset hvis tristate-egenskaben er sat til true. Etiketten associeret med afkrysningsfeltet sættes i text-egenskaben. Ved at sætte checked-egenskaben er afkrydsningsfeltet afkrydset til at starte med.

  Et afkrydsningsfelt har tre tilstande, afkrydset, delvist afkrydset og ikke-afkrydset.

  Kontrolteksten til et afkrydsningsfelt er text-egenskabens værdi.

Lukkeknap

  En knap der når der klikkes på den, udfører sin tekstassociation og dernæst lukker dialogen. Etiketten på knappen sættes med text-egenskaben. Uddata fra tekstassociationen, vises gennem ekoes til stdout hvis writeStdout-egenskaben er sat til true. Knappen kan være standardhandlingen for dialogen hvis default-egenskaben er sat til true.

  Lukknapper har en tilstand, standard.

  Der er ingen kontroltekst associeret med en lukkeknap.

Kombinationsboks

  Kombinationsboks er en markeringskontrol der kombinerer en knap og en pop op-menu. Den viser brugeren aktuelle valg fra en liste af valgmuligheder på minimalt plads. Punkter tilføjes til listen ved at bruge edit-vinduet. Hvis editable-egenskaben er sat til true, kan brugeren tilføje vilkårlige strenge.

  Kombinationsbokse har en tilstand, standard.

  Kontrolteksten til en kombinationsboks, er teksten i det valgte punkt.

Eksekvérknap

  En knap der, når der klikkes på den eksekverer sin tekstassociation. Etiketten på knappen sættes med text-egenskaben. Uddata fra tekstassociationen ekoes til stdout hvis writeStdout-egenskaben er sat til true. Knappen kan være standardhandlingen for dialogen hvis default-egenskaben er sat til true.

  Eksekvérknapper har en tilstand, standard.

  Der er ingen kontroltekst associeret med Eksekvérknapper.

Filvælger

  Filvælgerkontrollen kombinerer en linjeeditor med en knap, der når der klikkes på den viser brugeren en dialog hvori der kan vælges filer/mapper. Filen/mappen der vælges gemmes i linjeeditoren. Filvælgertypen kan sættes med selectionType-egenskaben. Der følgende typer til rådighed, Open, Save, Directory. Flere filer/mapper kan vælges hvis selectionOpenMultiple-egenskaben er sat til true. Der kan sættes en overskrift for filvælgeren med selectionCaption-egenskaben. Den vises som dialogens vinduestitel. Hvis ikke der angives nogen overskrift, vises selection-typen som titel istedet. Man kan begrænse filerne der vises i dialogen ved at bruge selectionFilter-egenskaben.

  Filvælger har en tilstand, standard.

  Kontrolteksten til en filvælger er teksten der findes i linjeeditoren (filen valgt af brugeren).

Gruppefelt

  En containerkontrol der indeholder andre kontroller. Rammen justeres med lineWidth-egenskaben. En titel kan tilføjes ved at sætte title-egenskaben.

  Gruppefelter har en tilstand, standard.

  Kontrolteksten for et gruppefelt er tekstassociationerne af hvert af kontrollerne i containeren. De ordnes efter rækkefølgen hvormed de forekommer inde i gruppefeltet.

Linjeeditor

  En linjeeditorkontrol er en enkeltlinjet teksteditor. Den tillader brugeren at indtaste og ændre en enkelt tekstlinje. Tekst der skal stå i linjeeditoren fra begyndelsen kan sættes i text-egenskaben. Kontrollen kan sættes til kun læsetilladelse med readOnly-egenskaben. Der er tre tilstande til kontrollen, Normal, NoEcho og Password. Tilstanden sættes med echoMode-egenskaben.

  Linjeeditorer har en tilstand, standard.

  Kontrolteksten for linjeeditortekst er teksten indeholdt i editoren.

Listefelt

  En listefeltkontrol giver en liste af markérbare punkter. Normalt er et eller slet ingen punkter markeret. Denne opførsel kan ændres vha. selectionMode-egenskaben. Punkter tilføjes til listefeltet vha. edit-vinduet.

  Et listefelt har kun én tilstand, standard.

  Kontrolteksten for et listefelt er punkterne i listefeltet. @selectedWidgetText returnerer kun aktuelt markerede punkter.

Listevisning

  Denne kontrol kan nu udnytte &kommander;. Funktionelt er den ligesom trævisningskontrollen så se venligst denne.

Billedetiket

  En simpel kontrol der indeholder en billed- eller en tekstetiket. Billedet der skal vises sættes i pixmap-egenskaben. Teksten sættes i text-egenskaben. Kun en af de to egenskaber kan sættes ad gangen. (Jeg tror i hvertfald at jeg kun kan få editoren til at sætte dem en ad gangen). Hvis scaledContents-egenskaben er sat til true, bliver billedet skaleret så det passer i kontrollens størrelse. Tekstformatet kan indstilles med textFormat-egenskaben.

  Denne kontrol kan ikke udnytte &kommander; og har derfor ingen tilstande eller kontroltekst.

Radioknap

  En knap der kan tjekkes eller aftjekkes, normalt brugt i knapgrupper til at foretage et eksklusivt valg. En etiket associeret med knappen kan sættes i text-egenskaben. En knap kan initieres så den er tjekket fra begyndelsen, ved at sætte checked-egenskaben til true. Hvis alle radioknapper i en knapgruppe har checked-egenskaben sat til true, så bliver det den sidste knap der sættes til tjekket.

  Radioknapper har to tilstande, tjekket og aftjekket.

  Der er ingen kontroltekst associeret med radioknapper.

RichText-editor

  Denne kontrol giver en teksteditor der tillader simpel tekstformatering.

  RichText-editor har en tilstand, standard.

  Kontrolteksten til en RichText-editor er teksten indeholdt i editoren i rich text-format. Markeret tekst kan returneres med @selectedWidgetText.

Heltalsrullefelt

  En kontrol der tillader brugeren at ændre en heltalsværdi ved enten at trykke på op- og ned-pilene eller ved at indtaste værdien i feltet. Minimum og maksimumværdier til kontrollen kan indstilles med minValue og maxValue-egenskaberne. specialValueText-egenskaben bruges til at sætte den tekstværdi der skal vises i stedet for minimumværdien.

  Denne kontrol har kun en tilstand, standard.

  Kontrolteksten til et heltalsrullefelt, er det aktuelle viste heltal.

Underdialog

  En knap der når der trykkes på den, kører en anden &kommander;-dialog. Dialogen der skal køres sættes i kmdrFile-egenskaben. Er standardegenskaben sat til true, køres dialogen hvis der trykkes enter når dialogen har fokus. Jeg tror man også kan benytte den som container. Jeg er nødt til at lege lidt mere med det her.

  Underdialog har en tilstand, standard.

  Kontrolteksten for en underdialog er teksten associeret med dialogen den eksekverer.

  Det skulle have indeholdt dialogen, men er nu kasseret til fordel for det nye projektkoncept. Skal vi lade det blive ved `@dialog()` i dens &kommander;-tekst eller fjerne den helt? Det er ikke rigtigt som det er nu.

Fanebladskontrol

  En kontrol der giver flere faneblade, der hver især kan indeholde flere kontroller.

Teksteditor

  En simpel multilinje teksteditor.

Tekstetiket

  En simpel kontrol der indeholder et stykke tekst. Denne kontrol lader dig også angive et billede. Ok, editoren siger de begge er QLabels. Hvorfor har vi to kontroller som ser ens ud men har forskellige navne. Skulle gerne ordnes i A7.

  Ved alfa 6 er denne kontrol delvist til rådighed og kan sættes ved at bruge eksterne DCOP-kald.

Trævisning

  En kontrol der giver en liste i form af en træstruktur. Denne kontrol er nu fuldstændiggjort så der kan tilføjes eller fjernes punkter, siden alfa 6. Du kan tilføje indre (børn) punkter og multisøjledata. Den aktulle begrænsning er at du ikke kan ændre søjler. For at tilføje en barneknude bruges / som adskiller. For at tilføje søjledata bruges escape-tabulator \t -tegnet, mellem søjler.