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

Chapitre 8. Les widgets d'intervalle

Table des matières

8.1. HScrollbar et VScrollbar : les barres de défilement
8.2. HScale et VScale : les gradateurs
8.2.1. Créer un gradateur
8.2.2. Méthodes et signaux (enfin, au moins méthodes...)
8.3. Méthodes communes aux widgets d'intervalle
8.3.1. Définir le mode d'actualisation
8.3.2. Définir et récupérer les ajustements
8.4. Clavier et souris
8.5. Démonstration des widgets d'intervalle

La catégorie des widgets d'intervalle (gtk.Range) inclut l'incontournable barre de défilement ainsi que le "gradateur", un peu moins courant. Bien que l'on utilise généralement ces deux types d'objets à différentes fins, ils sont assez similaires dans leur implémentation et leur fonctionnement. Les widgets d'intervalle ont un jeu d'éléments graphiques commun : la coulisse et le curseur, qui possèdent tous les deux leur propre fenêtre X et qui reçoivent des évènements. Pour faire avancer ou reculer le curseur dans la coulisse on peut le tirer avec la souris ou bien cliquer directement dans la coulisse. Dans ce second cas, et selon le bouton de la souris utilisé, le curseur viendra se positionner à l'endroit du clic ou s'en rapprochera suivant un pas préféfini.

Comme nous venons de le voir dans le chapitre sur les ajustements, tous les widgets d'intervalle sont associés à un gtk.Adjustment, à partir duquel ils calculent la longueur du curseur et sa position dans la coulisse. Lorsque l'utilisateur manipule le curseur, le widget d'intervalle modifie la valeur de l'ajustement.

8.1. HScrollbar et VScrollbar : Les barres de défilement

Voici les très classiques barres de défilement. Elles ne devraient être employées que pour faire défiler un autre widget, comme une liste, une zone de texte ou une vue orientable (il est même bien plus pratique d'utiliser une fenêtre à défilement dans la plupart des cas). Pour le reste, les gradateurs seront plus appropriés, car plus simples d'utilisation et offrant plus de fonctionnalités.

Les barres de défilement horizontale et verticale sont implémentées dans deux types différents. Il n'y a pas grand-chose à dire à leur sujet. On les crée en appelant l'une de ces méthodes :

  barredefil_h = gtk.HScrollbar(adjustment=None)

  barredefil_v = gtk.VScrollbar(adjustment=None)

... et voilà tout. L'argument adjustment (ajustement) attend une référence à un ajustement existant. Si vous ne lui en fournissez pas, la méthode en créera un pour vous, ce qui peut être intéressant si vous voulez transmettre ce nouvel ajustement à la méthode constructeur d'un autre widget, qui se chargera de le configurer pour vous (une zone de texte, par exemple).