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

9.15. Le sélecteur de police

Le gtk.FontSelectionDialog permet à l'utilisateur de sélectionner interactivement une police pour le programme. Il s'agit d'une boite de dialogue contenant un widget gtk.FontSelection et des boutons "Valider" et "Annuler". Un bouton "Appliquer" est également disponible mais il est caché par défaut. Le sélecteur de fichier permet de choisir parmi les polices système disponibles (les mêmes que celles qu'on obtient avec xlsfonts).

La Figure 9.15 montre la boite de dialogue du sélecteur de police :

Figure 9.15. Boite de dialogue du sélecteur de police

exemple sélecteur de police

La boite de dialogue contient un ensemble de trois onglets qui proposent :

La fonction de création de cette boite de dialogue est la suivante :

  dialselectpolice = gtk.FontSelectionDialog(title)

Le titre (title) est une chaine de caractères qui sera utilisée comme texte pour la barre de titre.

Une instance de gtk.FontSelectionDialog possède plusieurs attributs :

  fontsel
  main_vbox
  action_area
  ok_button
  apply_button
  cancel_button

L'attribut fontsel fait référence au widget de sélection de police, et main_vbox à la boite verticale contenant ce dernier ainsi que l'"action_area". action_area se réfère à la gtk.HButtonBox qui contient les boutons 'Valider', 'Appliquer' et 'Annuler'. Les attributs ok_button, cancel_button et apply_button se rapportent aux boutons 'Valider', 'Appliquer' et 'Annuler' et peuvent servir à établir des connexions aux signaux de ces derniers. apply_button peut servir à afficher le bouton 'Appliquer'.

Avec la méthode qui suit, on peut définir la police qui doit être initialement affichée dans le sélecteur de police :

  dialselectpolice.set_font_name(fontname)

L'argument fontname (nom de police) attend le nom d'une police système intégralement ou partiellement spécifiée. Par exemple :

  dialselectpolice.set_font_name('-adobe-courier-bold-*-*-*-*-120-*-*-*-*-*-*')

... spécifie partiellement la police initiale.

Le nom de la police sélectionnée peut être récupéré avec cette méthode :

  nom_police = dialselectpolice.get_font_name()

La boite de dialogue du sélecteur de police dispose d'une zone d'aperçu qui affiche du texte dans la police sélectionnée. Le texte utilisé dans cette zone d'aperçu peut être défini avec la méthode :

  dialselectpolice.set_preview_text(text)

Le texte de l'aperçu peut être récupéré à l'aide de la méthode suivante :

  texte = dialselectpolice.get_preview_text()

Le programme exemple calendrier.py utilise un gtk.FontSelectionDialog pour la sélection de la police du calendrier. Les lignes 106 à 111 définissent une fonction de rappel qui récupère le nom de la police à partir du sélecteur de police et l'utilise pour définir la police du calendrier. Les lignes 113-132 définissent la méthode qui crée le sélecteur de police, connecte les boutons 'Valider' et 'Annuler' à leur fonction de rappel, et affiche la boite de dialogue.