Forum Programmation.perl TreeView dynamique avec GTK2

Posté par  (site web personnel) .
Étiquettes : aucune
0
5
juin
2006
Hello,
je débute avec perl-gtk et j'essaye de construire une vue des dossiers en arbre afin de choisir les dossier de travail.
un peu comme dans un explorateur.

pour l'instant ce que j'ai réussi à construire est une fonction récursive qui ajoute au chargement les fichiers dans l'arbre.
le problème est que plus les répertoires à analyser sont nombreux plus la fonction est lente (logique) mais ça devient vite lent... :'(
et aussi que les répertoire ne sont pas mis à jour pendant la consultation.

j'aurai voulu savoir si il y'avait un moyen de créer l'arbre dynamiquement au fur et à mesure de la consultation de l'utilisateur.

exemple:
au début on voit REP1 et REP2,
puis il consulte REP2 et le pgm lit le contenu de REP2 et ajouter les dossiers fils dans la vue de l'arbre.

qqun aurait une idée, une piste , une solution pour moi?

Merci énormément!
  • # Bonne démarche

    Posté par  (site web personnel) . Évalué à 4.

    salut,

    effectivement, la démarche que tu abordes est la bonne: on ne peuple le niveau n+1 de l'arbre que quand on affiche le niveau n (c'est ce que font tous les explorateurs de fichiers). Donc regarde au niveau des signaux existants sur le treeview, tu dois en avoir un qui se déclenche quand tu déplie un pan de l'arbre (doit y avoir un mot clé du genre "expand", je suppose, dans le nom de l'évènement). Ensuite connecte ce signal et utilise le pour fouiller et ajouter les éléments du niveau manquant...

    exemple:
    le niveau n est replié, son contenu n'est pas affiché.
    tu cliques pour le déplier
    le niveau n+1 qui a été précédemment calculé est affiché, et tu calcules le niveau n+2 et l'ajoutes à l'aborescence

    Comme tu as toujours un niveau d'avance, si tu gères bien ça, ça peut t'éviter des légers temps d'attente quand tu essaies de déplier un niveau.

    J'espère que j'ai été assez clair... mais en tout cas tu es sur la bonne voie...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.