# uicontrol

Créer un composant d'interface utilisateur.

## 📝 Syntaxe

* c = uicontrol()
* c = uicontrol(propertyName, propertyValue)
* c = uicontrol(parent)
* c = uicontrol(parent, propertyName, propertyValue, ...)
* uicontrol(c)

## 📥 Argument d'entrée

* parent - Objet graphique de type figure.
* propertyName - Nom de la propriété : une chaîne scalaire ou un vecteur ligne de caractères.
* propertyValue - Valeur de la propriété : une valeur compatible avec le nom de la propriété.
* c - Un objet de contrôle d'interface utilisateur.

## 📤 Argument de sortie

* c - Un objet de contrôle d'interface utilisateur.

## 📄 Description

c = uicontrol crée un bouton poussoir, qui est le contrôle d'interface utilisateur par défaut, dans la figure actuelle et retourne l'objet uicontrol associé. Si aucune figure n'est actuellement ouverte, Nelson en génère une à l'aide de la fonction figure.

c = uicontrol(propertyName, propertyValue) crée un contrôle d'interface utilisateur avec des propriétés définies par un ou plusieurs arguments nom-valeur. Par exemple, spécifier 'Style', 'button' créera un bouton.

c = uicontrol(parent) crée le contrôle d'interface utilisateur par défaut (bouton poussoir) dans le conteneur parent spécifié, au lieu de se baser sur la figure actuelle.

c = uicontrol(parent, propertyName, propertyValue) crée un contrôle d'interface utilisateur dans le conteneur parent spécifié, permettant de définir ses propriétés à l'aide d'un ou plusieurs arguments nom-valeur.

uicontrol(c) met le focus sur un contrôle d'interface utilisateur précédemment défini, le plaçant au premier plan pour l'interaction utilisateur.

Liste des propriétés :

BackgroundColor : Couleur de l'arrière-plan, spécifiée comme un triplet RGB, un code couleur hexadécimal ou un nom de couleur valide.

BeingDeleted : Statut de suppression. Valeur logique on/off.

BusyAction : Mise en file d'attente des callbacks spécifiée comme 'queue' (par défaut) ou 'cancel'. Cette propriété détermine comment Nelson gère l'exécution des callbacks interrompus.

ButtonDownFcn : Fonction de callback pour l'appui sur un bouton.

CData : Une icône optionnelle peut être spécifiée comme un tableau 3D de valeurs RGB en vraies couleurs. Les valeurs du tableau peuvent être : des nombres en double précision allant de 0.0 à 1.0, ou des nombres uint8 allant de 0 à 255.

Callback : Fonction de callback principale : '' (par défaut), handle de fonction, tableau de cellules ou vecteur de caractères.

Children : Enfants de l'UIControl : tableau vide.

CreateFcn : Fonction de création du composant.

DeleteFcn : Fonction de suppression du composant.

Enable : État opérationnel du contrôle d'interface utilisateur.

FontAngle : Angle de la police : 'italic' ou 'normal' (par défaut).

FontName : Nom de la police : nom de police pris en charge par le système.

FontSize : Taille de la police : nombre positif.

FontUnits : Unités de la police : 'normalized', 'inches', 'centimeters', 'pixels' ou 'points' (par défaut).

FontWeight : Épaisseur de la police : 'bold' ou 'normal' (par défaut).

ForeGround : Couleur du texte, spécifiée comme un triplet RGB, un code couleur hexadécimal ou un nom de couleur valide.

HandleVisibility : Visibilité du handle de l'UIControl.

HorizontalAlignment : Alignement du texte de l'uicontrol : 'left', 'right' ou 'center' (par défaut).

Interruptible : Interruption des callbacks : 'on' (par défaut).

KeyPressFcn : Fonction de callback pour l'appui sur une touche.

KeyReleaseFcn : Fonction de callback pour le relâchement d'une touche.

ListboxTop : Index de l'élément supérieur dans la liste : valeur entière ou 1 (par défaut).

Max : Valeur maximale : nombre ou 1 (par défaut).

Min : Valeur minimale : nombre ou 0 (par défaut).

Parent : Objet parent : Figure.

Position : Emplacement et taille : \[gauche bas largeur hauteur].

SliderStep : Taille des étapes du curseur : \[minorstep majorstep] ou \[0.01 0.10] (par défaut).

String : Texte à afficher : vecteur de caractères, tableau de cellules de vecteurs de caractères ou tableau de chaînes.

Style : 'pushbutton' (par défaut), 'togglebutton', 'checkbox', 'radiobutton', 'edit', 'text', 'slider'.

Tooltip : Infobulle : vecteur de caractères ou chaîne scalaire.

Type : 'uicontrol'

Units : Unités de mesure : 'pixels' (par défaut), 'normalized', 'centimeters', 'inches' ou 'points'.

UserData : Tableau de données utilisateur ou \[] (par défaut).

Value : Valeur actuelle : nombre

Visible : État de visibilité : 'on' (par défaut).

## 💡 Exemples

Bouton poussoir

```matlab

f = figure;
b = uicontrol(f,'Style','pushbutton', 'String', 'Cliquez-moi', 'Position', [100 100 60 30], 'Callback', 'disp(''Bonjour tout le monde!'')')

```

![](broken-reference) Case à cocher

```matlab

f = figure();
h = uicontrol(Style='checkbox', String='Cliquez-moi!', Position=[100, 100, 100, 50]);

```

![](broken-reference) Édition

```matlab

f = figure();
h = uicontrol(Style='edit', String='Cliquez-moi!', Position=[100, 100, 100, 50]);

```

![](broken-reference) Image

```matlab

hFig = figure(Position=[100, 100, 300, 300]);
imgSize = 50;  % Taille de l'image
[X, Y] = meshgrid(1:imgSize, 1:imgSize);
CData = cat(3, X/imgSize, Y/imgSize, zeros(imgSize));
CData = im2double(CData);  % S'assurer que l'image est de type double
hButton = uicontrol(Style='pushbutton',  Position=[100, 100, 100, 100], CData=CData, String='Cliquez-moi!');

```

![](broken-reference) Démo uicontrol

```matlab

addpath([modulepath('graphics','root'), '/examples/uicontrol'])
edit uicontrol_demo
uicontrol_demo

```

![](broken-reference) Démo uicontrol Interruptible

```matlab

addpath([modulepath('graphics','root'), '/examples/uicontrol'])
edit uicontrol_demo_interruptible
uicontrol_demo_interruptible

```

![](broken-reference)

## 🔗 Voir aussi

[figure](https://nelson-9.gitbook.io/Nelson/markdown/fr/graphics/figure), [Gérer les interruptions de callback dans Nelson](https://nelson-9.gitbook.io/Nelson/markdown/fr/graphics/graphical_callback).

## 🕔 Historique

| Version | 📄 Description          |
| ------- | ----------------------- |
| 1.7.0   | Version initiale        |
| 1.14.0  | Propriété Units ajoutée |
