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.

Un fichier exemple est livré avec la gridview pour découvrir comment l'utiliser. Analysez le code et vous verrez que son utilisation est très simple.

 

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:cell .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 $gvtext 

 

3) Changer le texte d'une ligne entiere.

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

gv:line .g -rows 5  -text "Bonjour les programmeurs qui écrivent cette liste de mots"

Les options possible lors de la saisie de la lgine:

  • row : permet de définir le nombre de lignes
  • text : Le texte entre guillement est une liste séparé par des espaces produiront le résultat suivant pour notre exemple : colonne 1 :Bonjour; colonne 2: les ; colonne 3 programmeurs etc...

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 :

  • gvtext

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}

 

Ainsi voici une exemple pour récupérer la ligne :

Set monresultat $gvtext

5) RESTE A FAIRE, A coder...

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

  • Ajouter une scrollbar (Fait dans la dernière version)
  • Changer les fonts des entêtes ou de la grille (L'entête est maintenant en gras)
  • Possibilité de redimensionner la largeur des colonnes ou des lignes
  • etc...

 

Voici la dernière version au 10 décembre 2024 à télécharger ICI

 

 

 

Pour aller plus loin avec la spinbox

 Retour au sommaire de la librairie tk