<?xml version="1.0"  encoding="UTF-8" ?>

<sect1 id="widgets">
<sect1info>
<title
>Widgets</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>

&Sander.Koning; 

</authorgroup>
</sect1info>

<title
>Widgets</title>

<para
>De bouwstenen van een &kommander;-dialoogvenster zijn de widgets. Deze zijn net als een willekeurig widget in de &Qt;- en &kde;-bibliotheken behalve wat extra functionaliteit waarmee ze een <quote
>text association</quote
> kunnen hebben. Tekst wordt geassocieerd met een staat van de widget of het "populate"-slot. Het aantal staten hangt af van het widget. Als een widget slechts één staat heeft, heet die staat "default". </para>

<para
>Widgettekst bla-bla</para>

<para
>Het dialoogvenster heeft twee speciale staten voor "&kommander; text". Deze zijn "Initiate" en "Destroy". Deze worden uitgevoerd waneer het dialoogvenster wordt geïnitialiseerd en vernietigd. Deze beschermen tegen wat bekend staat als "race"-problemen bij het openen en betekenen dat u geen speciale procedures nodig hebt om bij het sluiten de zaak netjes te houden.</para>


<variablelist>
<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="buttongroup.png" format="PNG"/>
</imageobject
></inlinemediaobject
> ButtonGroup </term>
<listitem>
<para
>Een container om knoppen in een groep te ordenen. Een optionele titel kan ingesteld worden met de eigenschap "title". Het kader kan worden aangepast met de eigenschap "lineWidth". De knoppengroep kan als uitsluitend worden ingesteld door de eigenschap "exclusive" op waar te zetten. Dit betekent dat, als een schakelknop aangeklikt wordt, alle andere knoppen uitgeschakeld worden met uitzondering van keuzerondjes die altijd onderling uitsluitend zijn zelfs als de groep niet-uitsluitend is. Keuzerondjes kunnen als niet-uitsluitend worden ingesteld met de eigenschap "radioButtonExclusive". (Ik weet niet zo zeker of deze eigenschap wel echt werkt.) </para>
<para
>ButtonGroup heeft één staat, "default".</para>
<para
>De widgettekst voor een ButtonGroup bestaat uit de geassocieerde teksten van elke knop in de volgorde waarin ze in de ButtonGroup verschijnen. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="checkbox.png" format="PNG"/>
</imageobject
></inlinemediaobject
> CheckBox </term>
<listitem>
<para
>Een knop die in- en uitgeschakeld kan worden (selectievakje). Als de eigenschap "tristate" op waar is ingesteld kan deze ook half ingeschakeld zijn. De weergegeven tekst van de CheckBox is ingesteld in de eigenschap "text". De eigenschap "checked" zorgt ervoor dat de CheckBox in eerste instantie ingeschakeld is. </para>
<para
>Een CheckBox heeft 3 staten, "checked", "semichecked" en "unchecked". </para>
<para
>De widgettekst van een CheckBox is de waarde van de eigenschap "text". </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="pushbutton.png" format="PNG"/>
</imageobject
></inlinemediaobject
> CloseButton </term>
<listitem>
<para
>Een knop die als erop geklikt wordt, de geassocieerde tekst uitvoert en dan het dialoogvenster sluit. De bijbehorende tekst wordt ingesteld met de eigenschap "text". Uitvoer van de geassocieerde tekst (hoe zeg je dat) verschijnt tevens op stdout als de eigenschap "writeStdout" op waar is ingesteld. De knop kan de standaardactie voor het dialoogvenster zijn als de eigenschap "default" op waar is ingesteld. </para>
<para
>CloseButton heeft één staat, "default". </para>
<para
>Er is geen widgettekst geassocieerd met een CloseButton. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="combobox.png" format="PNG"/>
</imageobject
></inlinemediaobject
> ComboBox </term>
<listitem>
<para
>ComboBox is een selectiewidget die een knop en een pop-upmenu combineert. De huidige keuze van de gebruiker uit een lijst met opties wordt in minimale ruimte getoond. Items worden aan de lijst toegevoegd met het bewerkvenster. Als de eigenschap "editable" op waar is ingesteld kan de gebruiker willekeurige tekst invoeren. </para>
<para
>ComboBox heeft één staat, "default". </para>
<para
>De widgettekst van een ComboBox is de tekst van het geselecteerde item. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="pushbutton.png" format="PNG"/>
</imageobject
></inlinemediaobject
> ExecButton </term>
<listitem>
<para
>Een button die, als erop geklikt wordt, de geassocieerde tekst uitvoert. De tekst op de knop wordt ingesteld met de eigenschap "text". Uitvoer van de geassocieerde tekst (hoe zeg je dat) wordt tevens naar stdout geschreven als de eigenschap "writeStdout" op waar is ingesteld. De knop kan de standaardactie voor het dialoogvenster zijn als de eigenschap "default" op waar is ingesteld. </para>
<para
>ExecButton heeft één staat, "default". </para>
<para
>Er is geen widgettekst geassocieerd met ExecButton. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="lineedit.png" format="PNG"/>
</imageobject
></inlinemediaobject
> FileChooser </term>
<listitem>
<para
>De widget FileChooser combineert een LineEdit met een knop, bij klikken biedt deze de gebruiker een dialoogvenster voor het selecteren van bestanden/mappen. De selectie wordt opgeslagen in de LineEdit. Het soort FileChooser wordt ingesteld met de eigenschap "selectionType". Beschikbare soorten zijn "Open", "Save" en "Directory". Meerdere bestanden/mappen kunnen geselecteerd worden als de eigenschap "selectionOpenMultiple" als waar is ingesteld. Een tekst voor de FileChooser kan worden ingesteld met de eigenschap "selectionCaption". Dit wordt weergegeven als de venstertitel van het dialoog. Als de tekst niet is ingesteld wordt het soort selectie in de titel weergegeven. De bestanden die in het dialoog worden weergegeven kunnen gelimiteerd worden met de eigenschap "selectionFilter". </para>
<para
>FileChooser heeft één staat, "default". </para>
<para
>De widgettekst voor een FileChooser is de tekst in de LineEdit (het door de gebruiker gekozen bestand). </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="groupbox.png" format="PNG"/>
</imageobject
></inlinemediaobject
> GroupBox </term>
<listitem>
<para
>Een containerwidget die andere widgets bevat. Het kader wordt aangepast met de eigenschap "lineWidth". Een titel kan worden toegevoegd door de eigenschap "title" in te stellen. </para>
<para
>GroupBox heeft één staat, "default". </para>
<para
>De widgettekst van GroupBox bestaat uit de geassocieerde tekst van elke widget die het bevat, gecombineerd in de volgorde waarin ze in de GroupBox verschijnen. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="lineedit.png" format="PNG"/>
</imageobject
></inlinemediaobject
> LineEdit </term>
<listitem>
<para
>Een LineEdit-widget is een éénregelige editor. De gebruiker kan een enkele regel tekst invoeren en wijzigen. Initiële tekst voor de editor kan ingesteld worden in de eigenschap "text". De widget kan op alleen-lezen worden ingesteld met de eigenschap "readOnly". Er zijn 3 modi voor de widget, "Normal", "NoEcho" en "Password". De modus wordt ingesteld met de eigenschap "echoMode". </para>
<para
>LineEdit heeft één staat, "default". </para>
<para
>De widgettekst voor LineEdit is de tekst in de editor. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="listbox.png" format="PNG"/>
</imageobject
></inlinemediaobject
> ListBox </term>
<listitem>
<para
>Een ListBox-widget biedt een lijst van selecteerbare items. Normaal zijn één of geen items geselecteerd. Dit gedrag kan worden gewijzigd met de eigenschap "selectionMode". Items worden toegevoegd aan de ListBox met het bewerkvenster. </para>
<para
>Een ListBox heeft één staat, "default". </para>
<para
>De widgettekst van een ListBox is de items die in de ListBox staan. "@selectedWidgetText" retourneert alleen de geselecteerde items. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="listview.png" format="PNG"/>
</imageobject
></inlinemediaobject
> ListView </term>
<listitem>
<para
>Dit widget is nu ingeschakeld voor &kommander;. Het is functioneel hetzelfde als de boomwidget, kijkt u daar dus. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="pixlabel.png" format="PNG"/>
</imageobject
></inlinemediaobject
> PixmapLabel </term>
<listitem>
<para
>Een eenvoudige widget die een afbeelding of tekst bevat. De pixmap om weer te geven wordt ingesteld in de eigenschap "pixmap". De tekst wordt ingesteld in de eigenschap "text". Slechts één van deze eigenschappen kan tegelijkertijd worden ingesteld (denk ik, ik kan in de editor niet beide tegelijk instellen). Als "scaledContents" op waar is ingesteld wordt de afbeelding geschaald om in de grootte van de widget te passen. De opmaak van de tekst kan worden ingesteld met de eigenschap "textFormat". </para>
<para
>Dit widget is niet ingeschakeld voor &kommander; en heeft geen staat of widgettekst. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="radiobutton.png" format="PNG"/>
</imageobject
></inlinemediaobject
> RadioButton </term>
<listitem>
<para
>Een knop die in- of uitgeschakeld kan worden (keuzerondje), normaal gebruikt in de ButtonGroup om een uitsluitende keuze te maken. Een bij de knop horende tekst kan ingesteld worden in de eigenschap "text". Een knop kan geïnitialiseerd worden als ingeschakeld door de eigenschap "checked" op waar in te stellen. Als bij alle RadioButtons in een ButtonGroup de eigenschap "checked" op waar is ingesteld, is de laatste knop degene die ingeschakeld wordt. </para>
<para
>RadioButton heeft 2 staten, "checked" en "unchecked". </para>
<para
>Er is geen widgettekst geassocieerd met een RadioButton. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="richtextedit.png" format="PNG"/>
</imageobject
></inlinemediaobject
> RichTextEditor </term>
<listitem>
<para
>Deze widget biedt een tekstverwerker met eenvoudige tekstopmaak. </para>
<para
>RichTextEditor heeft één staat, "default". </para>
<para
>De widgettekst voor RichTextEditor is de tekst die zich in de editor bevindt in "rich text format". Geselecteerde tekst kan geretourneerd worden met @selectedWidgetText. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="spinbox.png" format="PNG"/>
</imageobject
></inlinemediaobject
> SpinBoxInt </term>
<listitem>
<para
>Een widget waarmee de gebruiker een geheel getal kan wijzigen door de pijlen omhoog en omlaag te gebruiken of een waarde in het invulveld in te voeren. Minimum- en maximumwaarde voor de widget kunnen worden ingesteld met de eigenschappen "minValue" en "maxValue". De eigenschap "specialValueText" wordt gebruikt om een tekstwaarde in te stellen die wordt weergegeven in plaats van de minimumwaarde. </para>
<para
>Deze widget heeft maar één staat, "default". </para>
<para
>De widgettekst voor een SpinBoxInt is het weergegeven gehele getal. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="frame.png" format="PNG"/>
</imageobject
></inlinemediaobject
> SubDialog </term>
<listitem>
<para
>Een knop die een ander &kommander;-dialoogvenster uitvoert als erop gedrukt wordt. Het dialoogvenster dat uitgevoerd moet worden, wordt ingesteld in de eigenschap "kmdrFile". Als de eigenschap "default" op waar is ingesteld, wordt het dialoogvenster uitgevoerd als er op Enter wordt gedrukt als het dialoogvenster de focus heeft. Ik denk dat u dit ook als een container kunt gebruiken. Ik moet hier nog meer mee spelen. </para>
<para
>SubDialog heeft één staat, "default". </para>
<para
>De widgettekst van SubDialog is de geassocieerde tekst van het dialoogvenster dat het uitvoert. </para>
<note
><para
>Hier had het dialoogvenster moeten komen, dat ontraden wordt met het nieuwe projectconcept. Moeten we het met <function
>@dialog()</function
> in de "&kommander; text" laten of wegdoen? Zoals het nu is, klopt het niet.</para
></note>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="tabwidget.png" format="PNG"/>
</imageobject
></inlinemediaobject
> TabWidget </term>
<listitem>
<para
>Een widget die meerdere tabbladen biedt die elk andere widgets kunnen bevatten. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="multilineedit.png" format="PNG"/>
</imageobject
></inlinemediaobject
> TextEdit </term>
<listitem>
<para
>Een eenvoudige meerregelige editor. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="label.png" format="PNG"/>
</imageobject
></inlinemediaobject
> TextLabel </term>
<listitem>
<para
>Een eenvoudige widget die een stukje tekst bevat. U kunt ook een pixmap instellen met dit widget. OK, de editor zegt dat beide QLabels zijn. Waarom hebben we 2 widgets die hetzelfde lijken, maar verschillende namen hebben? - Wordt opgelost in A7. </para>
<para
>Vanaf Alfa 6 is dit widget deels ingeschakeld en kan het ingesteld worden met externe DCOP-aanroepen. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<inlinemediaobject
><imageobject>
<imagedata fileref="listview.png" format="PNG"/>
</imageobject
></inlinemediaobject
> TreeWidget </term>
<listitem>
<para
>Een widget die een lijst biedt in de vorm van een boomstructuur. Deze widget is nu volledig ingeschakeld vanaf Alfa 6 en u kunt nu items toevoegen of verwijderen. U kunt subitems en data in meerdere kolommen toevoegen. De huidige begrenzing is dat u kolommen niet kunt wijzigen. Om een subknoop toe te voegen gebruikt u <quote
>/</quote
> als scheidingsteken. Om kolomdata toe te voegen gebruikt u het tabulatorteken <quote
>\t</quote
> tussen kolommen. </para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
