"tkinter.tix" — Widgets d'extension pour *Tk*
*********************************************

**Code source :** Lib/tkinter/tix.py

Obsolète depuis la version 3.6: cette extension *Tk* n'est pas
maintenue et ne doit pas être utilisée dans le nouveau code. Utilisez
"tkinter.ttk" à la place.

======================================================================

Le module "tkinter.tix" (*Tk* Interface Extension) fournit un riche
ensemble supplémentaire de widgets. Bien que la bibliothèque *Tk*
standard contienne de nombreux widgets utiles, ils sont loin d'être
complets. La bibliothèque "tkinter.tix" fournit la plupart des widgets
couramment nécessaires qui manquent dans *Tk* standard : "HList",
"ComboBox", "Control" (alias SpinBox) et un assortiment de widgets
déroulants. "tkinter.tix" comprend également de nombreux autres
widgets qui sont généralement utiles dans un large éventail
d'applications : "NoteBook", "FileEntry", "PanedWindow", etc. il y en
a plus de 40.

Avec tous ces nouveaux widgets, vous pouvez introduire de nouvelles
techniques d'interaction dans les applications, créant ainsi des
interfaces utilisateur plus utiles et plus intuitives. Vous pouvez
concevoir votre application en choisissant les widgets les plus
appropriés pour répondre aux besoins particuliers de votre application
et des utilisateurs.

Voir aussi:

  Page d'accueil de Tix
     La page d'accueil de "Tix" (en anglais). Cela inclut des liens
     vers de la documentation supplémentaire et des téléchargements.

  Tix Man Pages
     Version en ligne des pages de manuel et du manuel de référence
     (en anglais).

  Guide de programmation Tix
     Version en ligne du manuel de référence du programmeur (en
     anglais).

  Applications pour le développement Tix
     Applications *Tix* pour le développement de programmes *Tix* et
     *Tkinter*. Les applications *Tide* fonctionnent sous *Tk* ou
     *Tkinter*, et incluent **TixInspect**, un inspecteur pour
     modifier et déboguer à distance les applications
     *Tix/Tk/Tkinter*.


Utilisation de *Tix*
====================

class tkinter.tix.Tk(screenName=None, baseName=None, className='Tix')

   Widget de niveau supérieur de *Tix* qui représente principalement
   la fenêtre principale d'une application. Il a un interpréteur *Tcl*
   associé.

   Les classes du module "tkinter.tix" sous-classent les classes du
   module "tkinter". Le premier importe le second, donc pour utiliser
   "tkinter.tix" avec Tkinter, il vous suffit d'importer un module. En
   général, vous pouvez simplement importer "tkinter.tix" et remplacer
   l'appel de niveau supérieur à "tkinter.Tk" par "tix.Tk" :

      from tkinter import tix
      from tkinter.constants import *
      root = tix.Tk()

Pour utiliser "tkinter.tix", vous devez avoir installé les widgets
*Tix*, généralement en même temps que votre installation des widgets
*Tk*. Pour tester votre installation, essayez ce qui suit : :

   from tkinter import tix
   root = tix.Tk()
   root.tk.eval('package require Tix')


Widgets *Tix*
=============

Tix introduit plus de 40 classes de widgets dans le répertoire
"tkinter".


Widgets de base
---------------

class tkinter.tix.Balloon

   Une bulle qui apparaît sur un widget pour fournir de l'aide.
   Lorsque l'utilisateur déplace le curseur à l'intérieur d'un widget
   auquel un widget *Ballon* a été lié, une petite fenêtre
   contextuelle avec un message descriptif s'affiche à l'écran.

class tkinter.tix.ButtonBox

   Le widget ButtonBox crée une boîte de boutons, telle qu'elle est
   couramment utilisée pour "Ok Cancel".

class tkinter.tix.ComboBox

   Le widget ComboBox est similaire au contrôle de zone de liste
   déroulante dans Windows. L'utilisateur peut sélectionner un choix
   en tapant dans le sous-widget d'entrée ou en sélectionnant dans le
   sous-widget de la liste déroulante.

class tkinter.tix.Control

   Le widget Control est également connu sous le nom de widget
   "SpinBox". L'utilisateur peut ajuster la valeur en appuyant sur les
   deux boutons fléchés ou en saisissant la valeur directement dans
   l'entrée. La nouvelle valeur sera comparée aux limites supérieures
   et inférieures définies par l'utilisateur.

class tkinter.tix.LabelEntry

   Le widget LabelEntry regroupe un widget d'entrée et une étiquette
   dans un méga widget. Il peut être utilisé pour simplifier la
   création d'interfaces de type "formulaire de saisie".

class tkinter.tix.LabelFrame

   Le widget LabelFrame regroupe un widget cadre et une étiquette dans
   un méga widget. Pour créer des widgets à l'intérieur d'un widget
   LabelFrame, on crée les nouveaux widgets relatifs au sous-widget
   "frame" et on les gère à l'intérieur du sous-widget "frame".

class tkinter.tix.Meter

   Le widget Meter peut être utilisé pour afficher la progression
   d'une tâche en arrière-plan qui peut prendre beaucoup de temps à
   s'exécuter .

class tkinter.tix.OptionMenu

   Le widget OptionMenu crée un bouton de menu d'options.

class tkinter.tix.PopupMenu

   Le widget PopupMenu peut être utilisé en remplacement de la
   commande "tk_popup". L'avantage du widget "Tix" "PopupMenu" est
   qu'il nécessite moins de manipulation de code dans l'application.

class tkinter.tix.Select

   Le widget Select est un conteneur de sous-widgets de bouton. Il
   peut être utilisé pour afficher des boutons radio ou des cases à
   cocher.

class tkinter.tix.StdButtonBox

   Le widget StdButtonBox est un groupe de boutons standard pour
   afficher des boîtes de dialogue similaires à celle de la
   bibliothèque graphique *Motif*.


Sélecteurs de fichiers
----------------------

class tkinter.tix.DirList

   Le widget DirList affiche une liste d'un répertoire, de ses
   répertoires précédents et de ses sous-répertoires. L'utilisateur
   peut choisir l'un des répertoires affichés dans la liste ou passer
   à un autre répertoire.

class tkinter.tix.DirTree

   Le widget DirTree affiche une arborescence d'un répertoire, de ses
   répertoires précédents et de ses sous-répertoires. L'utilisateur
   peut choisir l'un des répertoires affichés dans la liste ou passer
   à un autre répertoire.

class tkinter.tix.DirSelectDialog

   Le widget DirSelectDialog présente les répertoires du système de
   fichiers dans une fenêtre de dialogue. L'utilisateur peut utiliser
   cette fenêtre de dialogue pour naviguer dans le système de fichiers
   afin de sélectionner le répertoire souhaité.

class tkinter.tix.DirSelectBox

   Le widget "DirSelectBox" est similaire à la boîte de sélection de
   répertoire *Motif*^(TM) standard. Il est généralement utilisé pour
   que l'utilisateur choisisse un répertoire. *DirSelectBox* stocke
   les répertoires les plus récemment sélectionnés dans un widget
   *ComboBox* afin qu'ils puissent être rapidement sélectionnés à
   nouveau.

class tkinter.tix.ExFileSelectBox

   Le widget ExFileSelectBox est généralement intégré dans un widget
   *tixExFileSelectDialog*. Il fournit à l'utilisateur une méthode
   pratique pour sélectionner des fichiers. Le style du widget
   "ExFileSelectBox" est très similaire à la boîte de dialogue de
   fichier standard sur MS Windows 3.1.

class tkinter.tix.FileSelectBox

   Le widget FileSelectBox est similaire à la boîte de sélection de
   fichiers *Motif*^(TM) standard. Il est généralement utilisé pour
   que l'utilisateur choisisse un fichier. *FileSelectBox* stocke les
   fichiers les plus récemment sélectionnés dans un widget "ComboBox"
   afin qu'ils puissent être rapidement sélectionnés à nouveau.

class tkinter.tix.FileEntry

   Le widget FileEntry peut être utilisé pour saisir un nom de
   fichier. L'utilisateur peut saisir manuellement le nom du fichier.
   Alternativement, l'utilisateur peut appuyer sur le widget de bouton
   qui se trouve à côté de l'entrée, ce qui fera apparaître une boîte
   de dialogue de sélection de fichier.


*ListBox* hiérarchique
----------------------

class tkinter.tix.HList

   Le widget HList peut être utilisé pour afficher toutes les données
   qui ont une structure hiérarchique, par exemple, l'arborescence du
   système de fichiers. Les entrées de la liste sont mises en retrait
   et reliées par des lignes secondaires en fonction de leur place
   dans la hiérarchie.

class tkinter.tix.CheckList

   Le widget CheckList affiche une liste d'éléments à sélectionner par
   l'utilisateur. CheckList agit de la même manière que les widgets
   *checkbutton* ou *radiobutton* de *Tk*, sauf qu'il est capable de
   gérer beaucoup plus d'éléments que les *checkbuttons* ou les
   *radiobuttons*.

class tkinter.tix.Tree

   Le widget Tree peut être utilisé pour afficher des données
   hiérarchiques sous forme d'arborescence. L'utilisateur peut ajuster
   la vue de l'arborescence en ouvrant ou en fermant des parties de
   l'arborescence.


*ListBox* tabulaire
-------------------

class tkinter.tix.TList

   Le widget TList peut être utilisé pour afficher des données sous
   forme de tableau. Les entrées de liste d'un widget "TList" sont
   similaires aux entrées du widget *listbox* *Tk*. Les principales
   différences sont (1) le widget "TList" peut afficher les entrées de
   la liste dans un format bidimensionnel et (2) vous pouvez utiliser
   des images graphiques ainsi que plusieurs couleurs et polices pour
   les entrées de la liste.


Gestionnaire de widgets
-----------------------

class tkinter.tix.PanedWindow

   Le widget PanedWindow permet à l'utilisateur de manipuler de
   manière interactive la taille de plusieurs volets. Les volets
   peuvent être disposés verticalement ou horizontalement.
   L'utilisateur modifie la taille des volets en faisant glisser la
   poignée de redimensionnement entre deux volets.

class tkinter.tix.ListNoteBook

   Le widget ListNoteBook est très similaire au widget "TixNoteBook" :
   il peut être utilisé pour afficher de nombreuses fenêtres dans un
   espace limité en utilisant une métaphore de bloc-notes. Le bloc-
   notes est divisé en une pile de pages (fenêtres). Une seule de ces
   pages peut être affichée à la fois. L'utilisateur peut naviguer
   dans ces pages en choisissant le nom de la page souhaitée dans le
   sous-widget "hlist".

class tkinter.tix.NoteBook

   Le widget NoteBook peut être utilisé pour afficher de nombreuses
   fenêtres dans un espace limité en utilisant une métaphore de bloc-
   notes. Le bloc-notes est divisé en une pile de pages. Une seule de
   ces pages peut être affichée à la fois. L'utilisateur peut naviguer
   dans ces pages en choisissant les « onglets » visuels en haut du
   widget NoteBook.


Types d'images
--------------

Le module "tkinter.tix" ajoute :

* les capacités pixmap pour tous les widgets "tkinter.tix" et
  "tkinter" afin de créer des images couleurs à partir de fichiers XPM
  ;

* les types d'images Compound peuvent être utilisés pour créer des
  images composées de plusieurs lignes horizontales ; chaque ligne est
  composée d'une suite d'éléments (textes, bitmaps, images ou espaces)
  disposés de gauche à droite. Par exemple, une image composée peut
  être utilisée pour afficher simultanément un bitmap et une chaîne de
  texte dans un widget *Tk* "Button".


Widgets divers
--------------

class tkinter.tix.InputOnly

   Les widgets InputOnly acceptent les entrées de l'utilisateur, ce
   qui peut être fait avec la commande "bind" (Unix uniquement).


Gestionnaire de forme de formulaire
-----------------------------------

De plus, "tkinter.tix" étend "tkinter" en fournissant :

class tkinter.tix.Form

   Le gestionnaire de géométrie Form basé sur les règles de connexions
   pour tous les widgets *Tk*.


Commandes *Tix*
===============

class tkinter.tix.tixCommand

   Les commandes tix permettent d'accéder à divers éléments de l'état
   interne de "Tix" et du contexte d'application "Tix". La plupart des
   informations manipulées par ces méthodes concernent l'application
   dans son ensemble, ou un écran ou un affichage, plutôt qu'une
   fenêtre particulière.

   Pour afficher les paramètres actuels, l'utilisation courante est :

      from tkinter import tix
      root = tix.Tk()
      print(root.tix_configure())

tixCommand.tix_configure(cnf=None, **kw)

   Interroge ou modifie les options de configuration du contexte
   applicatif *Tix*. Si aucune option n'est spécifiée, renvoie un
   dictionnaire de toutes les options disponibles. Si l'option est
   spécifiée sans valeur, alors la méthode renvoie une liste décrivant
   l'option nommée (cette liste sera identique à la sous-liste
   correspondante de la valeur renvoyée si aucune option n'est
   spécifiée). Si une ou plusieurs paires option-valeur sont
   spécifiées, alors la méthode modifie la ou les options données pour
   avoir la ou les valeurs données ; dans ce cas, la méthode renvoie
   une chaîne vide. L'option peut être n'importe laquelle des options
   de configuration.

tixCommand.tix_cget(option)

   Renvoie la valeur actuelle de l'option de configuration donnée par
   *option*. L'option peut être n'importe laquelle des options de
   configuration.

tixCommand.tix_getbitmap(name)

   Cherche un fichier bitmap du nom "name.xpm" ou "name" dans l'un des
   répertoires bitmap (voir la méthode "tix_addbitmapdir()"). En
   utilisant "tix_getbitmap()", vous pouvez éviter de coder en dur les
   noms de chemin des fichiers bitmap dans votre application. En cas
   de succès, il renvoie le chemin d'accès complet du fichier bitmap,
   préfixé par le caractère "@". La valeur renvoyée peut être utilisée
   pour configurer l'option "bitmap" des widgets *Tk* et *Tix*.

tixCommand.tix_addbitmapdir(directory)

   *Tix* maintient une liste de répertoires dans lesquels les méthodes
   "tix_getimage()" et "tix_getbitmap()" recherchent les fichiers
   images. Le répertoire bitmap standard est "$TIX_LIBRARY/bitmaps".
   La méthode "tix_addbitmapdir()" ajoute *directory* dans cette
   liste. En utilisant cette méthode, les fichiers images d'une
   application peuvent également être localisés en utilisant la
   méthode "tix_getimage()" ou "tix_getbitmap()".

tixCommand.tix_filedialog([dlgclass])

   Renvoie la boîte de dialogue de sélection de fichier qui peut être
   partagée entre différents appels de cette application. Cette
   méthode crée un widget de dialogue de sélection de fichier lors de
   son premier appel. Cette boîte de dialogue est renvoyée par tous
   les appels ultérieurs à "tix_filedialog()". Un paramètre facultatif
   *dlgclass* peut être passé sous forme de chaîne pour spécifier le
   type de widget de dialogue de sélection de fichier souhaité. Les
   options possibles sont "tix", "FileSelectDialog" ou
   "tixExFileSelectDialog".

tixCommand.tix_getimage(self, name)

   Localise un fichier image du nom "name.xpm", "name.xbm" ou
   "name.ppm" dans l'un des répertoires bitmap (voir la méthode
   "tix_addbitmapdir()" ci-dessus). S'il existe plusieurs fichiers
   portant le même nom (mais avec des extensions différentes), le type
   d'image est choisi en fonction de la profondeur de l'affichage X :
   les images *xbm* sont choisies sur les écrans monochromes et les
   images couleurs sont choisies sur les écrans couleurs. En utilisant
   "tix_getimage()", vous pouvez éviter de coder en dur les noms de
   chemin des fichiers image dans votre application. En cas de succès,
   cette méthode renvoie le nom de l'image nouvellement créée, qui
   peut être utilisée pour configurer l'option "image" des widgets
   *Tk* et *Tix*.

tixCommand.tix_option_get(name)

   Obtient les options maintenues par le mécanisme de schéma *Tix*.

tixCommand.tix_resetoptions(newScheme, newFontSet[, newScmPrio])

   Réinitialise le schéma et le jeu de polices de l'application *Tix*
   sur *newScheme* et *newFontSet*, respectivement. Cela n'affecte que
   les widgets créés après cet appel. Par conséquent, il est
   préférable d'appeler la méthode *resetoptions* avant la création de
   tout widget dans une application *Tix*.

   Le paramètre facultatif *newScmPrio* peut être donné pour
   réinitialiser le niveau de priorité des options *Tk* définies par
   les schémas *Tix*.

   En raison de la façon dont *Tk* gère la base de données d'options
   X, après l'importation et l'initialisation de *Tix*, il n'est pas
   possible de réinitialiser les schémas de couleurs et les jeux de
   polices à l'aide de la méthode "tix_config()". À la place, la
   méthode "tix_resetoptions()" doit être utilisée.
