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

Qt Quick Discussion :

Créer une ListView dynamique avec une propriété contextuelle


Sujet :

Qt Quick

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Par défaut Créer une ListView dynamique avec une propriété contextuelle
    Bonjour,

    Je cherche à faire une ListView dynamique basée sur une contex property. J'ai regardé l'exemple de la doc pour faire une ListView dynamique. Il suffit d'utiliser append et remove au model. Le problème étant que mon modèle est une context property, donc on ne peut pas la modifier avec append et remove. C'est là que je doute de la marche à suivre:
    -Faut-il mieux modifier ce qu'envoie la context property et recharger la ListView à chaque modification?
    -Faut-il mieux utiliser un autre système? J'ai lu sur internet qu'on pouvait utiliser des pointeurs ou des signaux et slots. Malheureusement, il n'y avait pas d'exemples avec...
    C'est pour un affichage de chemin vers des dossiers. Au chargement, la listview récupère les dossiers rentrés dans les précédentes sessions (enregistrés dans le registre par QSettings). Il peut ajouter un chemin, auquel cas il faut qu'il s'affiche dans la listview. Il peut supprimer un chemin de la listview. C'est là que je me suis demandé s'il fallait directement enregistrer les chemins dans le registre et mettre à jour la listview (puisque la context property change), ou faire autrement.

    Merci de votre aide.

    Cordialement

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Il me semblait avoir essayé ce genre de chose, et que c'était possible de modifier le modèle.
    Avez-vous regardé ceci (QtQuick 1.0, mais c'est à mon avis toujours valide pour QtQuick 2.2) ? http://christophe-dumez.developpez.c...ele-liste-cpp/
    De mémoire, avec cette approche, le modèle créé depuis le C++ et placé en propriété contextuelle n'est pas read-only.
    Vous pouvez également sous-classer directement QAbstractListModel en y respectant les indications de http://doc.qt.io/qt-5/qabstractitemm...ml#subclassing si vous avez vraiment des besoins spécifiques.

    Bonne journée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Par défaut
    Avez-vous regardé ceci (QtQuick 1.0, mais c'est à mon avis toujours valide pour QtQuick 2.2) ? http://christophe-dumez.developpez.c...ele-liste-cpp/
    De mémoire, avec cette approche, le modèle créé depuis le C++ et placé en propriété contextuelle n'est pas read-only.
    Avec cette approche, on peut modifier le modèle AVANT de la transmettre à la ListView. Mais elle ne propose pas de mises à jour une fois que la listview est chargée. Là, en clair, au lieu de créer une liste d'objets dans le QML, on la crée dans le C++. Moi ce qui m'intéresse plus, c'est d'apporter des modifications au modèle alors que la Listview est déjà affichée et par la suite utiliser le nouveau modèle dans la ListView.

    Vous pouvez également sous-classer directement QAbstractListModel en y respectant les indications de http://doc.qt.io/qt-5/qabstractitemm...ml#subclassing si vous avez vraiment des besoins spécifiques.
    Est-ce que ça veut bien dire de refaire moi-même la classe ListView de façon à faire ce qui m'intéresse? Si c'est ça, je pense pas avoir tant de besoins que ça. Là ce serait sortir un bazooka pour tuer une fourmis ^^

  4. #4
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Si vous spécialisez le ListModel proposé en ajoutant ceci :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public slots:
        void append(const QString &name, const QString &size)
        {
            appendRow(new FruitItem(name, size, this));
        }

    En théorie, dans le QML, avec cette approche, vous devriez pouvoir faire :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    model.append("Apple", "medium").
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Par défaut
    Aaah d'accord. Je vais tester ça mais ça risque de me prendre du temps étant donné qu'il y a beaucoup de choses que je ne connais pas dans ce code et en particulier la fonction setRoleNames qui n'existe plus dans la version actuelle de Qt. Il faut que j'épluche tout le code pour savoir que garder et que changer.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 218
    Par défaut
    Je suis en train de lire la documentation sur l'architecture MVC de Qt et je me heurte à une question mineure: a quoi sert le rôle des information dans un modèle? J'ai beau chercher, je ne trouve rien de clair sur le sujet. Dans ma tête, avec l'index on peut retrouver l'information voulue mais dans la doc, il donnent un exemple où la fonction data est appelée et elle prend deux arguments: l'index et le rôle. Mais je ne vois pas l'intérêt de ce rôle. Est-ce que vous pouvez m'éclairer?
    Je suis en train de regarder si un QStringListModel ne pourrait pas répondre à mon besoin.

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/03/2011, 20h38
  2. Réponses: 8
    Dernier message: 26/03/2010, 08h16
  3. Une listView Verticale avec une image
    Par Finality dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/04/2009, 10h07
  4. Comment coder une requete dynamique avec une Variable binaire.
    Par BoromSikim dans le forum Développement
    Réponses: 11
    Dernier message: 03/03/2009, 17h17
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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