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

QxOrm Discussion :

Utilisation de QDataWidgetMapper avec une classe modèle/vue générée


Sujet :

QxOrm

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut Utilisation de QDataWidgetMapper avec une classe modèle/vue générée
    Bonsoir,

    j'ai un petit soucis quand j'appelle la fonction insertRows de ma classe model. Je n'arrive pas a insert une row en dernier position ce qui me pose un problème avec le mapper. Je me suis permit de regarder la fonction insertRows de la classe QxModel<T>, et je me suis aperçu que dans le foreach, le int i était utilisé dans pour le foreach et pas pour le code à l'intérieur. Est ce normal ? si oui, pouvait m'aider a coordonner mon mapper et mon model ?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut


    Le module QxModelView est juste une implémentation de la classe QAbstractItemModel du moteur Qt Model/View.
    Concernant la méthode insertRows(), je te conseille de lire la doc de Qt :
    - ici : http://qt-project.org/doc/qt-4.8/qab...tml#insertRows
    - et ici : http://qt-project.org/doc/qt-4.8/mod...-removing-rows

    Je me suis permit de regarder la fonction insertRows de la classe QxModel<T>, et je me suis aperçu que dans le foreach, le int i était utilisé dans pour le foreach et pas pour le code à l'intérieur. Est ce normal ?
    Le module QxModelView peut contenir des erreurs d'implémentation, c'est possible, mais j'ai relu le code de la méthode et ça me semble correct.
    Si tu lis les docs de Qt (liens ci-dessus), insertRows() est censé ajouter des lignes "vides" à ton modèle :
    - paramètre 1 : correspond à une ligne existante de ton modèle, et tu veux insérer des lignes "vides" avant celle-ci ;
    - paramètre 2 : le nombre de lignes que tu veux insérer ;
    - paramètre 3 : le parent (laisse la valeur par défaut).

    pouvait m'aider a coordonner mon mapper et mon model ?
    Il faudrait donner plus de détails et un peu de ton code pour comprendre exactement ce que tu essayes de faire...
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut
    Bonjour,

    mon soucis actuellement est que je n'arrive pas insérer une row en dernier position dans une QListView qui utilise le model/view.

    paramètre 1 : correspond à une ligne existante de ton modèle, et tu veux insérer des lignes "vides" avant celle-ci ;
    Avec les tests effectués, je récupère le nombre de ligne actuelle de mon model (int row = monModel->rowCount()), ensuite j’insère une row (monModel->insertRows(row, 1)), et je set l'index de mon mapper a la bonne row (mapper->setCurrentIndex(row)). Seul problème la row s’insère effectivement avant la dernière ligne, ce qui pose problème avec le mapper.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int row = monModel->rowCount();
    monModel->insertRows(row, 1);
    mapper->setCurrentIndex(row);
    Or d'après la documentation Qt de la fonction beginInsertRows(http://qt-project.org/doc/qt-4.8/qab...eginInsertRows), il est possible d'ajouter une row en dernière position (voir l'exemple de la fonction beginInsertRows(parent, 4, 5)).

    Donc je sais pas si le problème vient de mon code ou de la lib QxOrm, d’où mes questions sur l’implémentation de la lib.

    Sinon, j'ai testé le update, et cela marche parfaitement .

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut
    D'apres ton test, il y a donc un soucis dans la classe qx::QxModel <T> : je vais regarder plus en details de mon côté et te tiens au courant...

    Si tu as une idée de correction de la méthode insertRows(), n'hésites pas
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut
    Il y avait bien un soucis, mais pas dans qx::QxModel<T>, dans qx::QxCollection<T> !
    C'est corrigé à partir de cette version :
    http://www.qxorm.com/version/QxOrm_1.3.1_BETA_19.zip
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut
    Ok, je vais tester ça ce soir.

    Merci pour ce rapide correctif

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

Discussions similaires

  1. Utilisation de RPC avec une classe en retour
    Par morey83 dans le forum GWT et Vaadin
    Réponses: 8
    Dernier message: 04/03/2015, 22h03
  2. Utiliser Application.run avec une classe
    Par baya22 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/04/2012, 12h07
  3. Réponses: 2
    Dernier message: 20/05/2010, 11h06
  4. template et utilisation avec une classe existante
    Par vartav dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2007, 10h39
  5. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30

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