LA GRIDVIEW

La GridView est un widget que j'ai créé en tcl tk pur pour pouvoir afficher des données simplement dans une grille et de pouvoir sélectionner une ligne.

Voici divers tutoriels pour l'utiliser :

 

DOCUMENTATION DE LA GRIDVIEW

A) description

la GridView est un widget réalisé en tcl tk pur

C'est une grille qui vous permet:

  • D'afficher des données sous forme de grille
  • De sélectionner une ligne complète en cliquant dessus
  • De définir un texte ou une image pour chaque cellule de la grille

C'est une grille visuelle, c'est à dire qu'elle n'est pas éditable directement.

B) TELECHARGEMENT ET INSTALLATION

Téléchargez simplement le fichier gridview.tk ici (décompressez le d'abord) et copiez le dans le répertoire de votre projet tk.

Ajoutez la ligne suivante dans votre projet :

source gridview.tk

et la gridview est maintenant utilisable.

 

DOCUMENTATION

Nous allons réaliser une petite application pour utiliser la Gridview.

1) Création d'une gridview

Pour créer une gridview nommée (.g par exemple) écrivons ce code :

gv:create .g -rows 5 -columns 4 -head no
  • gv.create : Fonction pour créer une gridview
  • .g : Nom de notre gridview
  • arguments : tout le reste sont des options de configuration.

Voici  les options possibles lors de la création:

  • rows : permet de définir le nombre de lignes
  • columns : Permet de définir le nombre de colonnes
  • head : Permet de définir si une entête doit être affichée.
  • bg : Change la couleur de fond de la grille
  • fg : Change la couleur du texte de toute la grille
  • bgline : Change la couleur de sélection de la ligne

2) Edition d'une cellule

Pour éditer le texte de la cellule à la ligne 1 et à la colonne 2  écrivez ce code:

gv:CellEdit .g -row 1 -column 2 -text "hello" 

 Voici les options possible pour l'edition d'une cellule:

  • row : Défini la ligne de la cellule (attention row sans S ). Le type est un nombre (exemple 1)
  • column : Défini la colonne de la cellule. Le type est un nombre (exemple 2)
  • text : Défini le texte contenu dans la cellule. Le type est une chaine de carctères (exemple "hello")
  • image : Défini l'image à afficher sous forme d'icone dans la cellule. Le type est une image
  • compound : Défini l'orientation de l'icone par rapport à l'image dans la cellule. Le type est une lettre représentant l'orientation (exemple n,s,e ou w)

Informations: Toutes les valeurs de la gridview sont contenues dans des variable de type array et qui ont cette forme :

  • gv(widgetname , option )

un exemple pour récupérer dans la variable bob le texte de la ligne cliquée.

set bob $gv(.g,line)

 

3) Changer le nombre de colonnes et de lignes à la volée.

Pour définir un nombre de colonne ou  lignes différents, écrivez ce code :

gv:change .g -rows 5 -columns 6 -head -no

Les options possible lors du changement sont les mêmes que pour la création:

  • rows : permet de définir le nombre de lignes
  • columns : Permet de définir le nombre de colonnes
  • head : Permet de définir si une entête doit être affichée.
  • bg : Change la couleur de fond de la grille
  • fg : Change la couleur du texte de toute la grille
  • bgline : Change la couleur de sélection de la ligne

4) Evènement sur la gridview

Un seul évènement est possible. La gridview réagit au clic de la souris lors d'une sélection d'une ligne.

Le texte renvoyé par le clic est contenu dans la variable :

  • gv(.g,line)

Le texte est une liste contenant le contenu de toutes les cellules séparé par des espaces.

Pour notre exemple :

{ligne 0 Colonne 0} {ligne 0 Colonne 1} {ligne 0 Colonne 2} {ligne 0 Colonne 3}

 

5) RESTE A FAIRE, A coder...

Le widget est utilisable mais il reste encore quelques chemin à parcourir, et notamment :

  • Ajouter une scrollbar
  • Changer les fonts des entêtes ou de la grille
  • Possibilité de redimensionner la largeur des colonnes ou des lignes
  • etc...

 

 

 

Pour aller plus loin avec la spinbox

 Retour au sommaire de la librairie tk