Vous êtes à peu près ici : Accueil  »   tutoriel PyGTK  »   PyGTK : sommaire

Chapitre 7. Les ajustements

Sommaire

7.1. Créer un ajustement
7.2. Utiliser facilement les ajustements
7.3. Les ajustements en détail

GTK dispose de plusieurs widgets pouvant être reglés visuellement par l'utilisateur au moyen de la souris ou du clavier, comme les widgets d'intervalle par exemple. D'autres existent qui affichent une partie ajustable d'une plus grande aire de données, comme la zone de texte (gtk.TextView) et la vue orientable (gtk.Viewport).

Une application doit être capable de réagir aux changements que l'utilisateur effectue dans les widgets d'intervalle. Pour ce faire, chaque widget qu'on ajuste pourrait émettre son propre type de signal, puis, soit transmettre la nouvelle valeur au gestionnaire de signal, soit faire inspecter sa structure de données par ce dernier afin de vérifier la valeur. Mais il peut aussi arriver que l'on souhaite connecter ensemble les changements de plusieurs widgets, de sorte qu'en réglant l'un deux, on règle les autres. L'exemple le plus évident est le cas où l'on souhaite connecter une barre de défilement à une vue orientable ou à une zone de texte à défilement. Si chaque widget a sa propre façon de définir ou de récupérer la valeur d'ajustement, le programmeur devra certainement écrire un gestionnaire de signal pour chacun, ceci afin d'effectuer la traduction entre, d'un côté le signal émis par un widget, et de l'autre, les données reçues par la méthode d'ajustement d'un autre widget.

GTK résoud ce problème avec l'objet Adjustment (ajustement, réglage), qui n'est pas un widget mais un moyen pour les widgets de stocker et transmettre, sous une forme abstraite et flexible, des informations de réglage. L'utilisation la plus évidente de l'ajustement est de stocker les paramètres et valeurs de configuration des widgets d'intervalle, comme les barres de défilement ou les gradateurs. Mais ce n'est pas tout : du fait qu'il dérive de la classe Object, il offre des possibilités dont ne disposent pas les structures de données normales, en particulier la possibilité d'émettre des signaux, comme les widgets. On peut utiliser ces signaux pour faire réagir le programme aux modifications des widgets ajustables par l'utilisateur, mais également pour propager les valeurs d'ajustement entre ces widgets de manière transparente.

Certains widgets incorporent des ajustements. C'est le cas, entre autres, des barres de progression, des vues orientables et des fenêtres à défilement. Nous observerons cette intégration des ajustements dans les chapitres concernant ces widgets.

7.1. Créer un ajustement

Un grand nombre des widgets qui utilisent des ajustements le font de manière automatique. Cependant, certains cas peuvent se présenter où il vous faudra en créer un vous-même. Vous utiliserez alors la méthode suivante :

  ajustement = gtk.Adjustment(value=0, lower=0, upper=0, step_incr=0, page_incr=0, page_size=0)

L'argument value (valeur) est la valeur initiale que vous voulez donner à votre ajustement, elle correspondra généralement à la position la plus haute ou la plus à gauche d'un widget ajustable. L'argument lower (minimale) spécifie la valeur la plus basse que peut prendre ajustement. L'argument step_incr (incrémentation par pas) spécifie le plus petit des deux incréments par lequel l'utilisateur peut modifier la valeur, et page_incr (incrémentation par page) le plus grand. L'argument page_size (taille de la page) correspond en quelque sorte à la partie visible d'un widget à défilement. Enfin, upper (maximale) représente la coordonnée la plus basse ou la plus à droite de l'enfant d'un widget à défilement. Il ne s'agit donc pas forcément de la valeur la plus grande que peut prendre value car, dans ces widgets, l'argument page_size est généralement différent de zéro.