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 :

L'architecture modèle-vue

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut L'architecture modèle-vue
    bonjour a tous
    j essaie pour le moment de comprendre ce systeme de modele/view...
    je suis plongé depuis quelques jours dans la documentation...et malgré un terrible mal de tête je pense progresser pas mal...

    je fais donc des tests en utilisant un QTreeView(exploFavs) et un QStandardItemModel(modL), le QTreeView n a que 2 niveaux : des dossiers qui contiennent des url...pas encore de sous dossiers...
    pour le moment j essaie de deplacer des rows(url) ce qui ne me pose aucun problemes en faisant des "swaps" de data(), sauf qu a un certain point dans mon prog je dois deplacer l'url d'un dossier a un autre donc en toute logique(en tout cas la mienne) je veux supprimer l url du precedent dossier et puis creer une nouvelle row en haut du dossier suivant contenant cette meme url
    et voici ce que j ai deja ecrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    QModelIndex previousIndex = exploFavs->selectionModel()->currentIndex();
    //...
    //je vous epargne les conditions mais indexBelow(previousIndex) est un dossier
    modL->insertRow(0, exploFavs->indexBelow(previousIndex) );//ok : a l'air dajouter une ligne vide..
    suppressItem(previousIndex);//ok : a l'air de supprimer la ligne correctement
    //les lignes suivantes ne realisent pas ce que je voudrais...
    //le nouvel index cree par insertRow?
    QModelIndex newIndex=exploFavs->model()->index(exploFavs->indexBelow(previousIndex).row(),0);
    modL->setData(newIndex,itemswap1);
    d'ici a ce que quelqu'un me reponde je vais essayer d ajouter un new QStandardItem ce qui me parait etre une bonne piste (je me suis exclamé en moi-même "mais bien sur... qu'est ce que je suis bete!!" ce qui est souvent bon signe chez moi )
    je ne vous demande pas de me donner le bon code...je finirais bien par trouver...
    pourriez vous cependant me dire si ce que je fais vous parait globalement correct, et surtout si je suis sur une bonne piste
    j'accepte avec bienveillance toute sorte de conseils et/ou de corrections

    je vous remercie par avance

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    voila j ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QStandardItem* item=modL->itemFromIndex(exploFavs->indexBelow(previousIndex));
    item->appendRow(new QStandardItem(itemswap1.toString()));
    suppressItem(previousIndex);
    c est parfait a 50% j aurais tellement preferé un prependRow...
    alors j ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QStandardItem* item=modL->itemFromIndex(exploFavs->indexBelow(previousIndex));
    modL->insertRow(item->row(),new QStandardItem(itemswap1.toString()));
                    suppressItem(previousIndex);
    mais evidement en toute logique :
    void QStandardItemModel::insertRow (int row, QStandardItem * item)
    insere une row mais pas une "sous row"...

    bref je vais faire une ptite pause

    la si vous avez une piste je suis preneur

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    voila une solution...dire que j en etais si proche...cfr 1er message...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //retourne l index de la prochaine url
    index = nextUrl(previousIndex);
    //...
    modL->insertRow(0, exploFavs->indexBelow(previousIndex) );
    modL->setData(index,itemswap1);
    suppressItem(previousIndex);
    ca fonctionne parfaitement
    néanmoins, je reste persuadé que je ne fais pas les choses comme il le faudrait...

    merci encore

Discussions similaires

  1. Champ de texte et MVC (modèle vue contrôleur)
    Par three minute hero dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2007, 11h04
  2. [Architecture] Modèle en trois couches
    Par benji17c dans le forum Framework .NET
    Réponses: 4
    Dernier message: 11/10/2006, 19h20
  3. Architecture document - vue
    Par Ndugu dans le forum MFC
    Réponses: 2
    Dernier message: 27/02/2006, 15h37
  4. Réponses: 8
    Dernier message: 14/06/2004, 10h03
  5. [JSP][Servlet][Javabean] Modèle Vue Controleur
    Par ay_pepito dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/02/2004, 10h05

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