IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Explorateur de fichiers intégré

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut Explorateur de fichiers intégré
    Bonjour à tous,

    Je débute avec Qt et je suis sur un projet de création d'un éditeur ID3 Tag.

    J'aimerai donc avoir deux explorateurs de fichiers intégrés à la fenêtre du logiciel à la manière de Tag&Rename(1 pour sélectionner le dossiers contenant les mp3 et le deuxième qui affiche les mp3 du dossier) (je ne souhaites pas avoir des boites de dialogues qui s'affichent).

    J'ai tenté cela mais ça ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void C_Fenetre::Exploreur()
    {
    QFileSystemModel *explo = new QFileSystemModel;
    explo->setRootPath(QDir::currentPath());
     
    ui->Exploreur->setModel(explo);
    }
    Quel widget faut-il que je pose sur la fenêtre avec Qt Designer ? Et comment faire en sorte qu'il affiche un explorateur de fichiers ?

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    (Pas le temps de répondre plus longuement)
    C'est une QListView qu'il te faut, + QDirModel.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    Bonjour,

    Merci pour votre réponse mais je ne vois pas comment faire.

    Comme je l'ai dit je suis assez débutant en Qt et en C++.

    J'ai lu la doc mais elle ne m'aide pas trop :s.
    QDir n'est pas une propriété de QListView donc je ne sais pas comme,t faire afficher l'arborescence. Comment faire ?

    merci d'avance

  4. #4
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    En fait QDirModel a été remplacé par QFileSystemModel. Le principe Modèle/Vue de Qt reprend le principe MVC connu un peu partout, tu as une partie de la doc dédiée à l'explication du concept :
    http://qt.developpez.com/doc/4.7/mod...w-programming/

    Dans ton cas, il y a un exemple qui fait exactement ce dont parlait Troudhyl :
    http://qt.developpez.com/doc/4.7/itemviews-dirview/

    Je te conseille quand même de jeter un oeil à la doc avant, histoire d'avoir quelques bases sur le fonctionnement Model/View et mieux comprendre l'exemple.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    Bon j'ai un début d'arbre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void C_Fenetre::Exploreur()
    {
        QVBoxLayout *layout = new QVBoxLayout;
     
     
        QFileSystemModel *modele = new QFileSystemModel;
        ui->Explorateur->setModel(modele);
     
        layout->addWidget(ui->Explorateur);
     
           setLayout(layout);
     
    }
    Mais le soucis est que j'ai les colonnes qui s'affiches (Name, Size, ...) mais rien ne s'affiche (QtreeView blanc).

    Ai-je oublié quelque chose ?

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    @Yann : Ah oui merci, faudra que je mette du code à jour :p

    @Catskan : Il faut lire l'introduction de la doc des classes que tu utilises (ce que j'ai fait pour te répondre car je ne connais pas beaucoup mieux cette classe), y'a en général des exemples d'usage et tout ce qu'il faut savoir. Il est écrit :
    Caching and Performance

    QFileSystemModel will not fetch any files or directories until setRootPath() is called. This will prevent any unnecessary querying on the file system until that point such as listing the drives on Windows.
    Donc en clair, tu dois définir le dossier sur lequel ta vue s'ouvre grâce à setRootPath().

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    Merci beaucoup, ça fonctionne parfaitement !

    Maintenant j'aimerai filtrer les fichiers .mp3 du dossier sélectionner dans ce QTreeView pour les afficher dans un QListView(enfin je pense).

    Le soucis c'est que je ne sais vraiment pas comment m'y prendre pour tout d'abord filtrer ces fichiers puis pour les afficher dans un QListView.

  8. #8
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Je pense que tu ne peux pas faire autrement qu'avoir un second modèle gérant les fichiers mp3. Tu peux filtrer facilement les fichiers par leur extension avec Qt (QFileSystemModel::setNameFilters et un exemple des chaines attendues).

    Tu peux également sélectionner quel type de fichier/répertoire tu souhaites afficher avec un autre filtre QFileSystemModel::filter.

    Par contre je ne sais pas si tu peux utiliser ce modèle avec une QListView. Mais de toute façon un QTreeView sans répertoire dans la liste, ça devrait revenir à peu près au même niveau affichage.

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    bonjour,

    J'ai tenté ça :
    void C_Fenetre::Exploreur()
    {
    QVBoxLayout *layout = new QVBoxLayout;


    QFileSystemModel *modele = new QFileSystemModel;
    ui->Explorateur->setModel(modele);
    modele->setRootPath(QDir::currentPath());


    ui->Exploreur_MP3->setModel(modele);

    QStringList filters;
    filters << "*.mp3";
    modele->setNameFilters(filters);
    layout->addWidget(ui->Explorateur);

    setLayout(layout);
    }
    J'ai transformé mon QlistView(qui sert à afficher seulement les .mp3) en QTreeView.
    Mais je ne sais pas comment faire pour afficher seulement les fichiers filtré de mon QTreeView "Exploreur" dans le QTreeView "Exploreur_MP3".
    Pour le moment il m'affiche tout les fichiers mais grise tout les fichiers sauf les .mp3 or moi je souhaiterai qu'il affiche que les .mp3

Discussions similaires

  1. Explorateur de fichier - partage de fichier
    Par Jean-Matt dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 07/11/2007, 23h23
  2. Réponses: 26
    Dernier message: 25/04/2007, 17h04
  3. [VS2005] Contrôles explorateur de fichier
    Par waici dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/01/2006, 21h23
  4. Explorateur de fichier avec limitation
    Par Shogun dans le forum Composants VCL
    Réponses: 12
    Dernier message: 30/05/2005, 17h45
  5. [C#] [Winforms] Explorateur de fichier et icônes windows
    Par Cl@rk dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/12/2004, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo