# Widget

I widget sono i mattoni che costituiscono una finestra di dialogo di &kommander;. Sono come qualsiasi altro widget nelle librerie &Qt; e &kde; eccetto il fatto che possiedono alcune funzionalità aggiuntive che gli permettono di mantenere delle associazioni di testo. Il testo viene associato ad uno stato del widget o al suo slot di popolamento. Il numero di stati dipende dal widget. Se un widget possiede un singolo stato, quello stato è chiamato default.

Widget di testo bla bla

La finestra di dialogo possiede due stati speciali per il testo di &kommander;: Initiate e Destroy. Questi vengono eseguiti quando la finestra di dialogo viene inizializzata e quando viene distrutta. Essi proteggono da quelli che vengono chiamati problemi di corsa durante l'apertura e significano che non devi richiedere nessuna speciale procedura alla chiusura per gestire le operazioni ausiliarie.

ButtonGroup

- Un contenitore per organizzare pulsanti in un gruppo. Si può impostare un titolo opzionale utilizzando la proprietà title. La cornice può essere regolata tramite la proprietà lineWidth. Il gruppo di pulsanti può essere impostato in modalità esclusiva impostando a vero la proprietà exclusive. Ciò significa che quando si fa clic su un pulsante alternato tutti gli altri pulsanti alternati saranno deselezionati con l'eccezione dei pulsanti radio che sono sempre mutuamente esclusivi anche quando il gruppo è non-esclusivo. I pulsanti radio possono essere impostati a non-esclusivi utilizzando la proprietà radioButtonExclusive. (Non sono al momento sicuro che questa proprietà funzioni.)

  ButtonGroup possiede un unico stato, default.

  Il testo del widget di un ButtonGroup è l'associazione di tutti i testi dei pulsanti nell'ordine in cui appaiono all'interno del GruppoDiPulsanti.

CheckBox

- Un pulsante che può essere marcato o meno. Può inoltre essere semi-marcato se la proprietà tristate è impostata a vero. L'etichetta associata alla CheckBox è impostata tramite la proprietà text. Attivando la proprietà checked la CheckBox sarà inizialmente marcata.

  Una CheckBox ha 3 stati: checked, semichecked e unchecked.

  Il testo del widget di una CheckBox è il valore della proprietà text.

CloseButton

- Un pulsante che, al clic del mouse, esegue la proprio associazione di testo e quindi chiude la finestra di dialogo. L'etichetta del pulsante viene impostata con la proprietà text. L'output dell'associazione di testo sarà stampata sullo stdout se la proprietà writeStdout è vera. Il pulsante può essere l'azione di default della finestra di dialogo se la proprietà default è impostata a vero.

  Il CloseButton possiede un unico stato, default.

  Non c'è alcuna associazione del testo del widget in un CloseButton.

ComboBox

- Una ComboBox è un widget di selezione che combina un pulsante ed un menu a cascata. Mostra la selezione corrente dell'utente da una lista di opzioni in uno spazio minimale. Gli elementi sono aggiunti alla lista utilizzando la finestra di edit. Se la proprietà editable è vera l'utente può inserire stringhe arbitrarie.

  Una ComboBox possiede un unico stato, default.

  Il testo del widget di una ComboBox è il testo dell'elemento selezionato.

ExecButton

- Un pulsante che esegue, quando premuto, la sua associazione di testo. L'etichetta sul pulsante viene impostata tramite la proprietà text. L'output dell'associazione di testo viene stampato sullo stdout se la proprietà writeStdout è attiva. Il pulsante può rappresentare l'azione predefinita di una finestra di dialogo se la proprietà default è attiva.

  Un ExecButton possiede un unico stato, default.

  Non c'è un'associazione di testo del widget in un ExecButton.

FileChooser

- Il widget FileChooser combina una LineEdit con un pulsante che, se premuto, presenterà all'utente una finestra di dialogo per la selezione di file/cartelle. Il file/cartella selezionata viene memorizzato nella LineEdit. Il tipo di FileChooser viene impostato con la proprietà selectionType. I tipi disponibili sono Open, Save e Directory. Si possono selezionare file/cartelle multiple se la proprietà selectionOpenMultiple è impostata a vero. Si può impostare una didascalia per il FileChooser con la proprietà selectionCaption. Questa verrà visualizzata come il titolo della finestra di dialogo. Se non viene specificata alcuna didascalia, verrà visualizzato come titolo il tipo di selezione. I file visualizzati nella finestra di dialogo possono essere limitati tramite la proprietà selectionFilter.

  Un FileChooser possiede un unico stato, default.

  Il testo del widget di un FileChooser è il testo contenuto nella LineEdit (il file scelto dall'utente).

GroupBox

- Un widget contenitore di altri widget. La cornice può essere regolata con la proprietà lineWidth. Si può aggiungere un titolo impostando la proprietà title.

  Un GroupBox possiede un unico stato, default.

  Il testo del widget di un GroupBox è l'associazione del testo di ognuno dei widget che contiene. Le associazioni saranno nell'ordine in cui i widget appaiono all'interno del BoxGruppo.

LineEdit

- Un widget LineEdit è un editor di testo su una singola riga. Permette all'utente di inserire e modificare una singola linea di testo. Il testo iniziale dell'editor può essere impostato tramite la proprietà text. Il widget può essere a sola lettura agendo sulla proprietà readOnly. Esistono tre modalità per questo widget: Normal, NoEcho e Password. La modalità viene impostata tramite la proprietà echoMode.

  Una LineEdit possiede un unico stato, default.

  Il testo del widget di una LineEdit è il testo contenuto nell'editor.

ListBox

- Un widget ListBox fornisce una lista di elementi selezionabili. Normalmente solamente un solo elemento o nessuno possono essere selezionati. Questo comportamento può essere cambiato con la proprietà selectionMode. Si aggiungono elementi alla ListBox utilizzando la finestra di edit.

  Una ListBox possiede un unico stato, default.

  Il testo del widget di una ListBox è l'insieme degli elementi nella ListBox. Per sapere quali sono gli elementi correntemente selezionati utilizza @selectWidgetText.

ListView

- Questo widget è adesso attivato in &kommander;. È funzionalmente identico al widget Albero, quindi puoi fare riferimento a quest ultimo per ulteriori informazioni.

PixmapLabel

- Un widget semplice che contiene un'immagine o un'etichetta di testo. La pixmap da visualizzare viene impostata nella proprietà pixmap. Il testo viene impostato tramite la proprietà text. Solo una di queste proprietà può essere impostata contemporaneamente (Così credo: non sono, al momento, in grado di impostarle entrambe tramite l'editor). Se scaledContent è impostata a vero l'immagine verrà ridimensionata per adattarsi alle dimensioni del widget. Il formato del testo può essere impostato tramite la proprietà textFormat.

  Questo widget non è abilitato in &kommander; e non possiede quindi nessuno stato o testo del widget.

RadioButton

- Un pulsante che può essere marcato o meno, utilizzato di solito in un ButtonGroup per avere scelte mutuamente esclusive. Si può impostare un'etichetta associata al pulsante tramite la proprietà text. Si può imporre che il pulsante venga inizialmente marcato impostando la proprietà checked a vero. Se più di un RadioButton in un ButtonGroup ha la proprietà checked impostata a vero, allora solamente l'ultimo pulsante marcato lo sarà.

  Un RadioButton possiede due stati: checked e unchecked.

  Non c'è un testo del widget associato ad un RadioButton.

RichTextEditor

- Questo widget è un editor di testo che permette una formattazione del testo semplificata.

  RichTextEditor possiede un unico stato, default.

  Il testo del widget di un RichTextEditor è il testo contenuto nell'editor in formato testo arricchito. @selectedWidgetText restituisce il testo selezionato.

SpinBoxInt

- Un widget che permette all'utente di modificare un valore intero sia agendo sulle frecce in su e in giù che inserendo un valore nella casella. Si possono impostare i valori minimo e massimo del widget tramite le proprietà minValue e maxValue. La proprietà specialValueText viene utilizzata per impostare un valore di testo che sarà visualizzato al posto del valore minimo.

  Questo widget possiede un unico stato, default.

  Il testo del widget di una SpinBoxInt è l'intero correntemente visualizzato.

SubDialog

- Un pulsante che, quando premuto, esegue un'altra finestra di dialogo di &kommander;. La finestra di dialogo da eseguire viene impostata nella proprietà kmdrFile. Se la proprietà default è impostata a vero, la finestra di dialogo verrà eseguita se viene premuto invio quando la finestra di dialogo possiede il focus. Penso che puoi utilizzarla anche come un contenitore. Dovrò provare a sperimentare un po' di più.

  Una SubDialog possiede un unico stato, default.

  Il testo del widget di una SubDialog è il testo associato alla finestra di dialogo da eseguire.

  Questo widget era progettato per contenere la finestra di dialogo, funzionalità che è stata deprecata dal nuovo concetto di progetto. Dovremmo mantenerla con `@dialog()` con il suo testo di &kommander; o rimuoverla? Così com è, non va bene.

TabWidget

- Un widget che fornisce molteplici schede ognuna delle quali può contenere altri widget.

TextEdit

- Un semplice editor multi-riga.

TextLabel

- Un semplice widget che contiene un pezzo di testo. Questo widget ti permette anche di impostare una pixmap. OK, l'editor dice che sono entrambe QLabel. Perché abbiamo 2 widget che sembrano essere la stessa cosa ma con nomi differenti? - La correzione è pianificata in A7.

  Sino ad Alpha 6 questo widget è parzialmente abilitato e può essere impostato tramite chiamate DCOP esterne.

TreeWidget

- Un widget che rappresenta una lista sotto forma di una struttura ad albero. Questo widget è, ora, dalla versione Alpha 6, completamente funzionale e permette l'aggiunta e la rimozione di elementi. Puoi aggiungere elementi figlio e dati multi-colonna. Il limite corrente è che non si possono modificare le colonne. Per aggiungere un figlio utilizza / come separatore. Per aggiungere dati su colonna utilizza il carattere escape \t tra le colonne.