2008-09-09 8 views
1

J'utilise un wxGenericDirCtrl, et j'aimerais savoir s'il y a un moyen de masquer les répertoires, je voudrais surtout cacher les frères et sœurs des nœuds parents.Masquer les répertoires dans wxGenericDirCtrl

Par exemple, si ma structure de répertoire ressemble à ceci:

+-a 
    | 
    +-b 
    | | 
    | +-whatever 
    | 
    +-c 
    | | 
    | +-d 
    | | 
    | +-e 
    | | 
    | +-f 
    | 
    +-g 
    | 
    +-whatever 

Si mon répertoire sélectionné est/a/c/d est-il possible de cacher b et g, de sorte que l'arbre ressemble à ceci dans mon ctrl:

+-a 
    | 
    +-c 
    | 
    +-[d] 
     | 
     +-e 
     | 
     +-f 

Je travaille actuellement avec une structure de répertoire qui a beaucoup, beaucoup répertoires qui ne sont pas pertinents pour la plupart des utilisateurs, il serait agréable de pouvoir le nettoyer.

Modifier: Si cela fait une différence, je me sers wxPython, et jusqu'à présent, je n'ai testé mon code sur linux en utilisant le backend GTK, mais je prévois de le rendre multi-plate-forme et l'utiliser sur Windows et Mac en utilisant les backends natifs.

Répondre

1

La liste des répertoires de marche en Python est très facile, donc je vous recommande d'essayer de "rouler les vôtres" en utilisant l'un des contrôles d'arbre simples (tels que TreeCtrl ou CustomTreeCtrl). Il devrait être très facile d'appeler le code de liste de répertoire quand un répertoire est développé et de retourner le résultat.

+0

Merci, mais ça ne vaut pas la peine pour moi à ce stade. – Moe

+0

Je vais dire que c'est la seule solution au problème, car il ne semble pas y avoir un moyen de le faire avec ce qui existe – Moe

0

Je ne pense pas que ce soit possible.

Il serait relativement facile d'ajouter cette fonctionnalité au contrôle C++ wxWidgets sous-jacent, mais puisque vous utilisez wxPython, vous devrez alors reconstruire cela aussi, ce qui est un énorme problème.

+0

Je n'ai aucun problème à reconstruire quoi que ce soit, c'est pour une application interne. – Moe

Questions connexes