entry

 

entry - Crée et manipule les widgets entrée de texte


SYNTAXE

 entry pathName ?options?

OPTIONS STANDARD


 -background
 -borderwidth
 -cursor
 -exportselection
 -font
 -foreground
 -highlightbackground
 -highlightcolor
 -highlightthickness
 -insertbackground
 -insertborderwidth
 -insertofftime
 -insertontime
 -insertwidth
 -justify
 -relief
 -selectbackground
 -selectborderwidth
 -selectforeground
 -takefocus
 -textvariable
 -xscrollcommand

OPTIONS SPÉCIFIQUES


Command-Line Name: -disabledbackground Database Name: disabledBackground Database Class: DisabledBackground Spécifie la couleur d'arrière-plan à utiliser quand l'entrée de texte est désactivée. Si cette option est la chaîne vide, la couleur d'arrière-plan normale est utilisée.

Command-Line Name: -disabledforeground Database Name: disabledForeground Database Class: DisabledForeground Spécifie la couleur de premier plan à utiliser quand l'entrée de texte est désactivée. Si cette option est la chaîne vide, la couleur de premier plan normale est utilisée.

Command-Line Name: -invalidcommand ou -invcmd Database Name: invalidCommand Database Class: InvalidCommand Spécifie le script à évaluer quand validateCommand retourne 0. Le positionner à {} désactive cette fonctionnalité (par défaut). Le meilleur usage de cette option est de la régler à bell. Voir Validation ci-dessous pour une plus ample information.

Command-Line Name: -readonlybackground Database Name: readonlyBackground Database Class: ReadonlyBackground Spécifie la couleur d'arrière-plan à utiliser quand l'entrée de texte est en lecture seule. Si cette option est la chaîne vide, la couleur d'arrière-plan normale est utilisée.

Command-Line Name: -show Database Name: show Database Class: Show Si cette option est spécifiée, alors le contenu de l'entrée de texte n'est pas affiché. A la place, chaque caractère sera affiché comme le premier caractère de cette option, comme ``*''. Ceci est utile, par exemple, si l'entrée de texte est utilisée pour saisir un mot de passe. Si des caractères de l'entrée de texte sont sélectionnés et copiés ailleurs, l'information copiée sera ce qui est affiché, pas le contenu.

Command-Line Name: -state Database Name: state Database Class: State Spécifie un des trois états de l'entrée de texte: normal, disabled, ou readonly. Si l'entrée de texte est readonly (en lecture seule), alors sa valeur ne sera pas modifiée en utilisant les commandes de widget et aucun curseur d'insertion ne sera affiché, même si le widget a le focus; le contenu du widget pourra quand même être sélectionné. Si l'entrée de texte est désactivée, la valeur ne sera pas modifiée, aucun curseur d'insertion ne sera affiché, le contenu ne sera pas sélectionnable, et l'entrée de texte pourra être affichée d'une couleur différente, dépendant des valeurs des options -disabledforeground et -disabledbackground.

Command-Line Name: -validate Database Name: validate Database Class: Validate Spécifie le mode dans lequel la validation se produit: none, focus, focusin, focusout, key, ou all. Il est par défaut de none. Quand vous désirez une validation, vous devez spécifier quel mode vous souhaitez utiliser. Voir Validation ci-dessous.

Command-Line Name: -validatecommand ou -vcmd Database Name: validateCommand Database Class: ValidateCommand Indique le script à évaluer quand vous voulez valider la saisie dans l'entrée de texte. Le positionner à {} désactive cette fonctionnalité (par défaut). cette commande doit retourner une valeur booléenne Tcl valide. Si elle retourne 0 (ou la valeur booléenne équivalente) alors cela signifie que vous rejetez l'édition en cours et que invalidCommand sera évaluée si elle est positionnée. Si elle retourne 1, alors l'édition est validée. Voir Validation ci-dessous pour une plus ample information.

Command-Line Name: -width Database Name: width Database Class: Width Spécifie une valeur entière indiquant la largeur désirée de l'entrée de texte, en taille moyenne des caractères de la police du widget. Si la valeur est inférieure ou égale à zéro, le widget prend une taille suffisante pour contenir son texte courant.


DESCRIPTION


La commande entry crée une nouvelle fenêtre (désignée par l'argument pathName ) et en fait un widget entrée de texte. Des options supplémentaires, décrites ci-dessus, peuvent être spécifiées sur la ligne de commande ou dans la base de données d'options pour configurer les aspects de l'entrée de texte comme ses couleurs, police, et relief. La commande entry retourne son argument pathName. A l'instant ou cette commande est appelée, il ne doit pas exister une fenêtre nommée pathName, mais son parent doit exister.

Une entrée de texte est un widget qui affiche une chaîne d'une ligne de texte et permet l'édition de cette chaîne en utilisant les commandes widget décrites ci-dessous, qui sont généralement liées à des frappes de touches et des événements souris. Quand elle créée, la chaîne de l'entrée de texte est vide. Une partie de l'entrée de texte peut être sélectionnée comme décrit ci-dessous. Si une entrée de texte exporte sa sélection (voir l'option exportSelection ), alors elle respecte les protocoles standard X11 dans la gestion de la sélection; les sélections sont disponibles en tant que string. Les entrées de texte respectent également les règles standard Tk de comportement du focus. Quand une entrée de texte a le focus elle affiche un curseur d'insertion pour indiquer ou les nouveaux caractères seront insérés.

Les entrées de texte sont capables d'afficher des chaînes qui sont trop longues pour rentrer entièrement dans la fenêtre. Dans ce cas, seulement une partie de la chaîne sera affichée; des commandes décrites ci-dessous peuvent être utilisées pour changer la vue dans la fenêtre. Les entrées de texte utilisent le mécanisme standard xScrollCommand d'interaction avec les scrollbars (voir la description de l'option xScrollCommand pour les détails). Elles supportent également le balayage (scanning), comme décrit ci-dessous.


VALIDATION


La validation fonctionne par l'assignation de l'option validateCommand à un script qui sera évalué conformément à l'option validate comme suit:

none Comportement par défaut. Ceci signifie pas de validation.

focus validateCommand sera appelée quand l'entrée de texte reçoit ou perd le focus.

focusin validateCommand sera appelée quand l'entrée de texte reçoit le focus.

focusout validateCommand sera appelée quand l'entrée de texte perd le focus.

key validateCommand sera appelée quand l'entrée de texte est editée.

all validateCommand sera appelée pour toutes les conditions précédentes.

Il est possible d'effectuer des substitutions pourcentage avec validateCommand et invalidCommand, comme vous pourriez le faire avec un script bind. Les substitutions suivantes sont admises:

%d Type de l'action: 1 pour insert, 0 pour delete, ou -1 pour une validation "focus", "forced" ou "textvariable" .

%i Index du caractère à insérer/effacer, s'il existe, autrement -1.

%P La valeur que l'entrée de texte doit modifier. Si vous configurez une nouvelle textvariable pour le widget , ce sera la valeur de cette textvariable.

%s La valeur courante avant édition.

%S La chaîne insérée/effacée, si elle existe, {} autrement.

%v Le type de validation actuel.

%V Le type de validation qui a déclenché l'appel (key, focusin, focusout, forced).

%W Le nom du widget entrée de texte .

En général, textVariable et validateCommand peuvent être dangereuses à mélanger. Tous les problèmes ont été surmontés pour que l'usage de validateCommand n'interfère pas avec le comportement traditionnel de l'entrée de texte. Utiliser textVariable en lecture seule ne causera jamais de problèmes. Le danger viendra si vous essayez de donner à textVariable une valeur que validateCommand n'accepte pas, se qui positionnera validate à none (invalidCommand ne sera pas déclenchée). La même situation arrive quand une erreur se produit pendant l'évaluation de validateCommand.

Schématiquement, une erreur se produit quand validateCommand ou invalidCommand rencontre une erreur pendant l'évaluation de son script ou validateCommand ne retourne pas une valeur booléenne Tcl valide. L'option validate passera également à none quand vous éditez le widget depuis validateCommand ou invalidCommand. De telles éditions surchargeront celle qui était en cours de validation. Si vous souhaitez éditer le widget entrée de texte (par exemple le mettre à {}) pendant la validation et laisser l'option validate activée, vous devez inclure la commande

 ''after idle {%W config -validate %v}''

dans validateCommand ou invalidCommand (selon celle depuis laquelle vous éditiez l'entrée de texte). Il est également recommandé de ne pas modifier une textVariable associée pendant la validation, ce qui provoquerait une désynchronisation entre le widget et sa textVariable.


COMMANDES DE WIDGET


La commande entry crée une nouvelle commande Tcl dont le nom est pathName. cette commande peut être utilisée pour appeler diverses opérations sur le widget. Elle a la forme générale suivante:

 ''pathName option ''?''arg arg ...''?

Option et les args déterminent le comportement exact de la commande.

Plusieurs des commandes widget des entrée de texte attendent un index ou plus comme arguments. Un index indique un caractère particulier de la chaîne dans l'entrée de texte , sous une des formes suivantes:

numéro Spécifie l'index du caractère, ou 0 correspond au premier caractère de la chaîne.

anchor Indique le point d'ancrage de la sélection, qui est positionné avec les commandes widget select from et select adjust .

end Indique le caractère juste après le dernier dans la chaîne de l'entrée de texte. C'est équivalent à la spécification d'un index numérique égal à la longueur de la chaîne de l'entrée de texte.

insert Indique le caractère adjacent et immédiatement suivant le curseur d'insertion.

sel.first Indique le premier caractère de la sélection. C'est une erreur d'utiliser cette forme si la sélection n'est pas dans la fenêtre de l'entrée de texte.

sel.last Indique le caractère juste après le dernier de la sélection. C'est une erreur d'utiliser cette forme si la sélection n'est pas dans la fenêtre de l'entrée de texte.

@nombre Sous cette forme, nombre est traité en tant que coordonnée x dans la fenêtre de l'entrée de texte; le caractère associé à cette coordonnée x est utilisé. Par exemple, ``@0'' indique le caractère le plus à gauche dans la fenêtre.

Des abréviations peuvent être utilisées pour n'importe quelle des formes ci-dessus, ex. ``e ou ``sel.f. En général, les index hors des limites sont automatiquement arrondis à la valeur légale la plus proche.

Les commandes suivantes sont admises pour les widgets entrée de texte:

pathName bbox index Retourne une liste de quatre chiffres décrivant les limites (bounding box) du caractère désigné par index. Les deux premiers éléments de lune liste donnent les coordonnées x et y du coin supérieur gauche de l'aire d'écran occupée par le caractère (en pixels relatifs au widget) et les deux derniers éléments indiquent les largeur et hauteur du caractère, en pixels. La "bounding box" peut référencer une région en dehors de la zone visible de la fenêtre.

pathName cget option Retourne la valeur courante de l'option de configuration donnée par option. Option peut prendre n'importe quelle des valeurs acceptées par la commande entry.

pathName configure ?option? ?valeur option valeur ...? Interroge ou modifie les options de configuration du widget. Si aucune option n'est spécifiée, retourne une liste décrivant toutes les options disponibles pour pathName (voir ConfigWidg pour une information sur le format de cette liste). Si option est spécifiée sans valeur, alors la commande retourne une liste décrivant cette option (cette liste sera identique à la sous-liste des valeurs correspondante retournée si aucune option n'est spécifiée). Si une ou plusieurs paires option-valeur sont spécifiées, alors la commande modifie l'option(s) donnée(s); dans ce cas la commande retourne une chaîne vide. Option peut prendre n'importe quelle des valeurs acceptées par la commande entry .

pathName delete first ?last? Efface un ou plusieurs éléments de l'entrée de texte. First est l'index du premier caractère à effacer, et last est l'index du caractère juste après le dernier à effacer. Si last n'est pas spécifié il est par défaut de first+1, c.a.d. un seul caractère est effacé. cette commande retourne une chaîne vide.

pathName get Retourne la chaîne de l'entrée de texte.

pathName icursor index Déplace le curseur d'insertion juste avant le caractère désigné par index. Retourne une chaîne vide.

pathName index index Retourne l'index numérique correspondant à index.

pathName insert index chaîne Insère les caractères de chaîne juste avant le caractère indiqué par index. Retourne une chaîne vide.

pathName scan option args Cette commande est utilisée pour implémenter le parcours des entrées de texte. Elle a deux formes, dépendantes de option:

pathName scan mark x Enregistre x et la vue courante dans la fenêtre de l'entrée de texte; utilisé en conjonction avec des commandes scan dragto futures. Cette commande est généralement associée avec un clic de souris dans le widget. Elle retourne une chaîne vide.

pathName scan dragto x cette commande calcule la différence entre son argument x et l'argument x de la dernière commande scan mark de ce widget. Elle corrige alors la vue à gauche ou à droite de 10 fois la différence des coordonnées x. cette commande est généralement associée avec les événements déplacement de souris dans le widget, pour produire un effet de dragging de l'entrée de texte à grande vitesse au travers de la fenêtre. La valeur de retour est une chaîne vide.

pathName selection option arg Cette commande est utilisée pour ajuster la sélection dans une entrée de texte. Elle a plusieurs formes, dépendantes de option:

pathName sélection adjust index Localise la fin de la sélection la plus proche du caractère désigné par index, et l'ajuste à index (c.a.d. incluant mais pas au-delà de index). L'autre extrémité de la sélection devient le point d'ancrage pour les commandes select to suivantes. Si la sélection n'est pas actuellement dans l'entrée de texte, alors une nouvelle sélection est créée pour inclure les caractères entre index et le plus récent point d'ancrage de la sélection, inclus. Retourne une chaîne vide.

pathName selection clear Efface la sélection si elle est actuellement dans le widget. Si la sélection n'est pas dans le widget alors la commande n'a pas d'effet. Retourne une chaîne vide.

pathName sélection from index Place le point d'ancrage de la sélection juste avant le caractère désigné par index. Ne change pas la sélection. Retourne une chaîne vide.

pathName sélection présent Retourne 1 s'il y a des caractères sélectionnés dans l'entrée de texte, 0 si rien n'est sélectionné.

pathName sélection range start end Place le début de la sélection sur le caractère indexé par start et la fin sur celui précédant end. Si end se refère au même caractère que start ou un précédent, alors la sélection de l'entrée de texte est effacée.

pathName sélection to index Si index est avant le point d'ancrage, place la sélection sur le caractère depuis index jusqu'à mais non inclus le point d'ancrage. Si index est le même que le point d'ancrage, ne fait rien. Si index est après le point d'ancrage, place la sélection du caractère au point d'ancrage jusqu'à mais non inclus index. Le point d'ancrage est déterminé par la commande select from ou select adjust la plus récente dans le widget. Si la sélection n'est pas dans le widget alors une nouvelle sélection est créée en utilisant le plus récent point d'ancrage spécifié pour le widget. Retourne une chaîne vide.

.VS 8.3 pathName validate Cette commande est utilisée pour forcer une évaluation de validateCommand indépendante des conditions spécifiées par l'option validate . Ceci est réalisé en positionnant temporairement l'option validate à all. Elle retourne 0 ou 1.

pathName xview args cette commande est utilisée pour consulter et changer la position horizontale du texte dans la fenêtre du widget. Elle peut prendre n'importe quelle des formes suivantes:

pathName xview Retourne une liste contenant deux éléments. Chaque élément est une fraction comprise entre 0 et 1; ensemble ils décrivent la portion horizontale visible dans la fenêtre. Par exemple, si le premier élément est .2 et le second élément est .6, 20% du texte de l'entrée de texte est hors écran à gauche, les 40% intermédiaires sont visibles dans la fenêtre, et 40% du texte est hors écran à droite. Ce sont les même valeurs transmises aux scrollbars via l'option -xscrollcommand .

pathName xview index Ajuste la vue dans la fenêtre pour que le caractère désigné par index soit affiché à l'extrémité gauche de la fenêtre.

pathName xview moveto fraction Ajuste la vue dans la fenêtre pour que le caractère situé à fraction dans le texte soit affiché à l'extrémité gauche de la fenêtre. Fraction doit être une fraction entre 0 et 1.

pathName xview scroll number what cette commande décale la vue dans la fenêtre à gauche ou à droite en relation avec number et what. Number doit être un entier. What doit être soit units soit pages ou une abréviation des deux. Si what est units, la vue est ajustée à gauche ou à droite de number caractères à l'écran; s'il est en pages alors la vue est ajustée de number screenfuls. Si number est négatif alors les caractères les plus à gauche deviennent visibles; si il est positif alors les caractères les plus à droite deviennent visibles.


BINDINGS PAR DEFAUT


Tk crée automatiquement des bindings de classe pour les entrée de texte qui leur donnent le comportement par défaut suivant. Dans les descriptions ci-dessous, ``word se réfère à un groupe contigu de lettres, chiffres, caractères``_ , ou tout autre caractère.

[1] Cliquer sur le bouton1 de la souris positionne le curseur d'insertion juste avant le caractère situé sous le curseur de la souris, place le focus sur ce widget, et annule toute sélection dans le widget. Glisser avec le bouton1 de la souris sélectionne tout entre le curseur d'insertion et le caractère sous la souris.

[2] Double cliquer avec le bouton1 de la souris sélectionne le mot sous le pointeur et positionne le curseur d'insertion au début du mot. Glisser après un double clic déplace la sélection du mot sélectionné.

[3] Triple cliquer avec le bouton1 de la souris sélectionne tout le texte et positionne le curseur d'insertion avant le premier caractère.

[4] La fin de la sélection peut être ajustée en glissant avec le bouton 1 de la souris et en appuyant sur la touche Shift; ceci ajustera la fin de la sélection proche du curseur de la souris quand le bouton 1 a été cliqué. Si le bouton est double-cliqué avant de glisser alors la sélection sera ajustée en unités de mots entiers.

[5] Cliquer sur le bouton1 de la souris avec la touche Contrôle enfoncée positionne le curseur d'insertion dans l'entrée de texte sans affecter la sélection.

[6] Si quelconques caractères imprimables sont saisis dans une entrée de texte, ils sont insérés à l'emplacement du curseur d'insertion.

[7] La vue dans l'entrée de texte peut être ajustée en cliquant-tirant avec le bouton 2 de la souris . Si le bouton 2 de la souris est enfoncé sans déplacer la souris, la sélection est copiée dans l'entrée de texte à la position du pointeur de la souris.

[8] Si la souris est déplacée hors de l'entrée de texte sur la gauche ou la droite alors que le bouton 1 est enfoncé, l'entrée de texte "scrolle" automatiquement pour rendre le texte visible (s'il y a plus de texte hors écran du coté ou la souris est sortie de la fenêtre).

[9] Les touches flèche Droite et flèche Gauche déplacent le curseur d'insertion d'un caractère vers la gauche ou la droite; elles effacent également toute sélection dans l'entrée de texte et positionnent le point de sélection. Si les touches flèche Droite ou flèche Gauche sont frappées avec la touche Shift enfoncée, alors le curseur d'insertion se déplace et la sélection est étendue au caractère suivant. Control-Gauche et Control-Droite déplacent le curseur d'insertion d'un mot, et Control-Shift-Gauche et Control-Shift-Droite déplacent le curseur d'insertion d'un mot et étendent également la sélection. Control-b et Control-f se comportent de même que flèche Gauche et flèche Droite, respectivement. Meta-b et Meta-f se comportent de même que Control-Gauche et Control-Droite, respectivement.

[10] La touche Home, ou Control-a, déplace le curseur d'insertion au début de l'entrée de texte et efface toute sélection de l'entrée de texte. Shift-Home déplace le curseur d'insertion au début de l'entrée de texte et étend également la sélection jusqu'à ce point.

[11] La touche Fin, ou Control-e, déplace le curseur d'insertion à la fin de l'entrée de texte et efface toute sélection de l'entrée de texte. Shift-End déplace le curseur à la fin et étend la sélection jusqu'à ce point.

[12] Les touches Select et Control-Espace positionnent le point de sélection à la position du curseur d'insertion. Elles n'affectent pas la sélection courante. Shift-Select et Control-Shift-Space ajustent la sélection à la position courante du curseur d'insertion, en sélectionnant du point de sélection jusqu'au curseur d'insertion s'il n'existait pas de sélection précédemment.

[13] Control-/ sélectionne tout le texte de l'entrée de texte.

[14] Control-\ efface toute sélection de l'entrée de texte.

[15] La touche F16 (marquée Copy sur de nombreuses stations Sun) ou Meta-w copie la sélection du widget vers le presse-papier, s'il y a une sélection.

[16] La touche F20 (marquée Cut sur de nombreuses stations Sun) ou Control-w coupe la sélection du widget vers le presse-papier. S'il n'y a pas de sélection dans le widget alors ces touches n'ont pas d'effet.

[17] La touche F18 (marquée Paste sur de nombreuses stations Sun) ou Control-y insère le contenu du presse-papier à la position du curseur d'insertion.

[18] La touche Delete efface la sélection, s'il y en a une, de l'entrée de texte. S'il n'y a pas de sélection, elle efface le caractère à droite du curseur d'insertion.

[19] Les touche BackSpace et Control-h effacent la sélection, s'il y en a une, de l'entrée de texte. S'il n'y a pas de sélection, elles effacent le caractère à gauche du curseur d'insertion.

[20] Control-d efface le caractère à droite du curseur d'insertion.

[21] Meta-d efface le mot à droite du curseur d'insertion.

[22] Control-k efface tous les caractères à droite du curseur d'insertion.

[23] Control-t inverse l'ordre des deux caractères à droite du curseur d'insertion.

Si l'entrée de texte est désactivée en utilisant l'option -state, alors la vue dans l'entrée de texte peut toujours être ajustée et le texte de l'entrée de texte peut toujours être sélectionné, mais aucun curseur d'insertion ne sera affiché et aucune modifications du texte n'auront lieu excepté si l'entrée de texte est liée à une variable en utilisant l'option -textvariable, auquel cas tout changement de la variable sera reflété par l'entrée de texte quelle que soit la valeur de son option-state .

Le comportement des entrées de texte peut être changé en définissant de nouveaux bindings individuels ou en redéfinissant les bindings de classe.


copyright © 2003 - Le Portail Tcl/Tk Francophone.


Catégorie Manuel Tcl/Tk