IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QAbstractItemModel

La classe QAbstractItemModel fournit une interface abstraite pour les classes mod�le d'�l�ment. Plus d'informations...

  
 #include <QAbstractItemModel>

H�ritage

H�rite de QObject.

H�ritage

H�rit� par QAbstractListModel, QAbstractProxyModel, QAbstractTableModel, QDirModel, QFileSystemModel, QHelpContentModel, QProxyModel et QStandardItemModel.

Description d�taill�e

La classe QAbstractItemModel fournit une interface abstraite pour les classes mod�les d'�l�ment.

La classe QAbstractItemModel d�finit une interface standard que les mod�les d'�l�ment doivent utiliser pour interop�rer avec les autres composants de l'architecture mod�le/vue. La classe n'est pas directement instanciable. Par contre, vous pouvez en h�riter pour cr�er de nouveaux mod�les.

La classe QAbstractItemModel est l'une des classes mod�le/vue et fait partie du framework mod�le/vue de Qt.

Si vous avez besoin d'un mod�le pour l'utiliser avec une QListView ou une QTableView, vous devriez plut�t envisager de d�river la classe QAbstractListModel ou QAbstractTableModel plut�t que cette classe.

Le mod�le de donn�es sous-jacent est expos� aux vues et d�l�gu�s sous forme d'une hi�rarchie de tableaux. Si vous n'utilisez pas cette hi�rarchie, alors le mod�le est une simple table de lignes et colonnes. Chaque �l�ment poss�de un index unique sp�cifi� par un QModelIndex.

image Chaque �l�ment de donn�e auquel on peut acc�der via un mod�le poss�de un index de mod�le associ�. Vous pouvez obtenir cet index de mod�le en utilisant la fonction index(). Chaque index peut avoir un index fr�re ; les �l�ments enfants poss�dent un index parent.

Chaque �l�ment est associ� � des �l�ments de donn�es associ�s et ceux-ci peuvent �tre r�cup�r�s en sp�cifiant un r�le (voir Qt::ItemDataRole) � la fonction data() du mod�le. Les donn�es de tous les r�les disponibles peuvent �tre r�cup�r�es en m�me temps avec la fonction itemData().

Les donn�es pour chaque r�le sont d�finies en utilisant un Qt::ItemDataRole particulier. Les donn�es pour les r�les individuels sont d�finies individuellement avec la fonction setData() ou elles peuvent �tre d�finies pour tous les r�les avec la fonction setItemData().

Les �l�ments peuvent �tre test�s avec la fonction flags() (voir Qt::ItemFlag) pour savoir s'ils peuvent �tre s�lectionn�s, d�plac�s ou manipul�s de diff�rentes fa�ons.

Si un �l�ment poss�de des objets enfants, la fonction hasChildren() retourne true pour l'index correspondant.

Le mod�le poss�de une fonction rowCount() et une fonction columnCount() pour chaque niveau de la hi�rarchie. Les lignes et colonnes peuvent �tre ins�r�es et retir�es avec les fonctions insertRows(), insertColumns(), removeRows() et removeColumns().

Le mod�le envoie des signaux pour informer des changements. Par exemple, le signal dataChanged() est envoy� � chaque fois que des �l�ments de donn�es du mod�le sont modifi�s. Les changements des ent�tes fournis par le mod�le provoquent l'�mission du signal headerDataChanged(). Si la structure des donn�es sous-jacentes change, le mod�le peut envoyer le signal layoutChanged() pour informer les vues qu'elles doivent r�afficher les �l�ments pr�sent�s, en prenant la nouvelle structure en compte.

On peut effectuer une recherche de donn�es particuli�res dans les �l�ments accessibles par le mod�le en utilisant la fonction match().

Pour trier le mod�le, vous pouvez utiliser la fonction sort().

D�rivation

Note : des guides g�n�riques pour la d�rivation de mod�les sont disponibles dans la documentation de la d�rivation de mod�le.

Lors de la d�rivation de QAbstractItemModel, vous devez au moins impl�menter les fonctions index(), parent(), rowCount(), columnCount() et data(). Ces fonctions sont utilis�es dans tous les mod�les en lecture seule et forment les bases des mod�les �ditables.

Vous pouvez aussi r�impl�menter la fonction hasChildren() pour fournir un comportement sp�cial aux mod�les dans lesquels l'impl�mentation de la fonction rowCount() est co�teuse. Cela permet aux mod�les de limiter le nombre de donn�es requises par les vues et peut �tre utilis� pour impl�menter un remplissage retard� des donn�es du mod�le.

Afin de permettre l'�dition du mod�le, vous devez aussi impl�menter les fonctions setData() et flags() afin que ItemIsEditable soit renvoy�. Vous pouvez aussi red�finir les fonctions headerData() et setHeaderData() pour contr�ler la fa�on dont les ent�tes de votre mod�le sont affich�s.

Les signaux dataChanged() et headerDataChanged() doivent �tre �mis explicitement lors de la r�impl�mentation respectivement des fonctions setData() et setHeaderData().

Les mod�les personnalis�s doivent cr�er des index de mod�le � l'usage des autres composants. Pour ce faire, appelez la fonction createIndex() avec les num�ros de ligne et de colonne appropri�s pour l'�l�ment, ainsi qu'un identificateur pointeur ou entier pour cet �l�ment. La combinaison de ces valeurs doit �tre unique pour chaque �l�ment. Les mod�les personnalis�s utilisent typiquement ces identificateurs uniques dans les autres fonctions r�impl�ment�es pour retrouver les donn�es des �l�ments et acc�der aux informations des parents et enfants de l'�l�ment. Voir l'exemple de mod�le arbre simple pour plus d'informations � propos des identificateurs uniques.

Il n'est pas n�cessaire de g�rer chaque r�le d�fini dans Qt::ItemDataRole. Selon le type de donn�es contenu dans le mod�le, il peut �tre suffisant d'impl�menter la fonction data() pour renvoyer les informations valides pour les r�les les plus communs. La plupart des mod�les fournissent au moins la repr�sentation textuelle des donn�es de l'�l�ment pour le r�le Qt::DisplayRole et les mod�les devraient de pr�f�rence aussi fournir des informations valides pour les r�les Qt::ToolTipRole et Qt::WhatsThisRole, ces r�les permettant aux mod�les d'�tre utilis�s par les vues standard de Qt. Toutefois, pour certains mod�les g�rant des donn�es tr�s sp�cialis�es, il peut �tre appropri� de ne fournir des donn�es que pour des r�les d�finis par l'utilisateur.

Les mod�les qui fournissent des interfaces pour les structures de donn�es redimensionnables peuvent fournir les impl�mentations des fonctions insertRows(), removeRows(), insertColumns(), et removeColumns(). Lors de l'impl�mentation de ces fonctions, il est important d'informer les vues connect�es de tout changement des dimensions du mod�le avant et apr�s qu'ils aient lieu�:

Les signaux priv�s que ces fonctions �mettent donnent aux composants attach�s la possibilit� d'effectuer des actions avant que des donn�es deviennent indisponibles. L'encapsulation des op�rations d'insertion et de suppression avec ces fonctions de d�but et de fin permet aussi au mod�le de g�rer la persistance des index de mod�les correctement. Pour que les s�lections soient correctement g�r�es, vous devez vous assurer que vous appelez ces fonctions. Si vous ins�rez ou supprimez un �l�ment ayant des enfants, vous n'avez pas besoin d'appeler ces fonctions sur les �l�ments enfants. Autrement dit, l'�l�ment parent va s'occuper de ses �l�ments enfants.

Pour cr�er des mod�les se peuplant incr�mentalement, vous pouvez r�implementer les fonctions fetchMore() et canFetchMore(). Si la r�implementation de la fonction fetchMore() ajoute des lignes dans le mod�le, les fonctions beginInsertRows() et endInsertRows() doivent �tre appel�es.

Voir aussi Classes mod�les, R�f�rence pour la d�rivation de mod�le, QModelIndex, QAbstractItemView, Utilisation du glisser/d�poser avec les vues d'�l�ments, Exemple de mod�le DOM simple, Exemple de mod�le en arbre simple, Exemple de mod�le en arbre �ditable et Exemple "Plus d'�l�ments".

Fonctions membres

QAbstractItemModel::QAbstractItemModel ( QObject * parent = 0 )

Construit un mod�le d'�l�ment abstrait avec le parent parent donn�.

QAbstractItemModel::~QAbstractItemModel () [virtual]

D�truit le mod�le d'�l�ment abstrait.

void QAbstractItemModel::beginInsertColumns ( const QModelIndex & parent, int first, int last ) [protected]

Commence une op�ration d'insertion de colonnes.

Lors de la r�impl�mentation de la fonction insertColumns() dans une sous-classe, vous devez appeler cette fonction avant l'insertion des donn�es dans le mod�le stockant les donn�es.

L'index parent correspond au parent dans lequel les nouvelles colonnes sont ins�r�es ; first et last sont les num�ros de colonne des nouvelles colonnes apr�s leur insertion (premier et dernier num�ro).

image Sp�cifie le premier et dernier num�ro de colonne pour la liste de colonnes que vous voulez ins�rer dans un �l�ment du mod�le. Comme pr�sent� dans le diagramme, nous ins�rons trois colonnes avant la colonne 4, donc first vaut 4 et last vaut 6 :
 beginInsertColumns(parent, 4, 6);

Cela ins�re les trois nouvelles colonnes aux positions 4, 5 et 6.

image Pour ajouter des colonnes � la fin, ins�rez-les apr�s la derni�re colonne. Comme pr�sent� dans le diagramme, nous rajoutons trois colonnes � un ensemble de six colonnes existantes (finissant � la colonne 5), donc first vaut 6 et last vaut 8 :
 beginInsertColumns(parent, 6, 8);

Cela ajoute les trois nouvelles colonnes aux positions 6, 7 et 8.

Note : cette fonction �met le signal columnsAboutToBeInserted() que les vues ou les proxy connect�s doivent traiter avant l'insertion des donn�es. Sinon, les vues pourront se trouver dans un �tat invalide.

Voir aussi endInsertColumns().

void QAbstractItemModel::beginInsertRows ( const QModelIndex & parent, int first, int last ) [protected]

Commence une op�ration d'insertion de lignes.

Lors de la r�impl�mentation de la fonction insertRows() dans une sous-classe, vous devez appeler cette fonction avant l'insertion des donn�es dans le mod�le stockant les donn�es.

L'index parent correspond au parent dans lequel les nouvelles lignes seront ins�r�es ; first et last sont les num�ros de ligne des nouvelles lignes apr�s leur insertion (premier et dernier num�ro).

image Sp�cifie le premier et dernier num�ro de ligne pour la liste de lignes que vous voulez ins�rer dans un �l�ment du mod�le. Comme pr�sent� dans le diagramme, nous ins�rons trois lignes avant la ligne 2, donc le first vaut 2 et last vaut 4 :
 beginInsertRows(parent, 2, 4);

Cela ins�re les trois nouvelles lignes aux positions 2, 3 et 4.

image Pour ajouter des lignes � la fin, ins�rez-les apr�s la derni�re ligne. Comme pr�sent� dans le diagramme, nous rajoutons deux lignes � un ensemble de deux lignes d�j� existantes (finissant � la ligne 3), donc first vaut 4 et last vaut 5 :
 beginInsertRows(parent, 4, 5);

Cela ajoute les deux nouvelles lignes aux positions 4 et 5.

Note : cette fonction �met le signal rowsAboutToBeInserted() que les vues ou les proxy connect�s doivent traiter avant l'insertion des donn�es. Sinon, les vues pourront se trouver dans un �tat invalide.

Voir aussi endInsertRows().

bool QAbstractItemModel::beginMoveColumns ( const QModelIndex & sourceParent, int sourceFirst, int sourceLast, const QModelIndex & destinationParent, int destinationChild ) [protected]

Commence une op�ration de d�placement de colonnes.

Lors de la r�impl�mentation dans une sous-classe, cette m�thode simplifie le d�placement d'entit�s dans votre mod�le. Cette m�thode est responsable du d�placement d'index persistants dans le mod�le, vous �vitant de le faire par vous-m�me. L'utilisation de beginMoveRows et endMoveRows est une alternative � l'envoi de layoutAboutToBeChanged et layoutChanged directement avec changePersistentIndexes. Le signal layoutAboutToBeChanged est envoy� par cette m�thode pour des raisons de compatibilit�.

L'index sourceParent correspond au parent depuis lequel les colonnes sont d�plac�es. Les num�ros de colonnes sourceFirst et sourceLast correspondent aux colonnes � d�placer. L'index destinationParent correspond au parent dans lequel les colonnes sont d�plac�es. Le num�ro de colonne destinationChild est la colonne dans laquelle les colonnes seront d�plac�es. Ainsi, l'index de colonne sourceFirst dans sourceParent deviendra la colonne destinationChild dans destinationParent, suivie par les autres colonnes jusqu'� sourceLast.

Par contre, lors du d�placement des colonnes dans le m�me parent (si sourceParent et destinationParent sont identiques), les colonnes seront plac�es avant la colonne d'index destinationChild. Ainsi, si vous souhaitez d�placer les colonnes 0 et 1 pour qu'elles deviennent les colonnes 1 et 2, destinationChild devra �tre 3. Dans ce cas, le nouvel index pour la colonne source i (qui est compris entre sourceFirst et sourceLast) est �gal � (destinationChild-sourceLast-1+i).

Notez que, si sourceParent et destinationParent sont identiques, destinationChild ne doit pas �tre compris entre sourceFirst et sourceLast + 1. Vous devez aussi vous assurer de ne pas essayer de d�placer une colonne dans l'un de ses propres enfants ou anc�tres. Cette m�thode retourne false si l'une de ces conditions est vraie, dans ce cas vous devez annuler l'op�ration de d�placement.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi endMoveColumns().

bool QAbstractItemModel::beginMoveRows ( const QModelIndex & sourceParent, int sourceFirst, int sourceLast, const QModelIndex & destinationParent, int destinationChild ) [protected]

Commence une op�ration de d�placement de lignes.

Lors de la r�impl�mentation d'une sous-classe, cette m�thode simplifie le d�placement d'entit�s dans votre mod�le. Cette m�thode est responsable du d�placement des index persistants dans le mod�le, vous �vitant de le faire par vous-m�me. L'utilisation de beginMoveRows et endMoveRows est une alternative � l'envoi des signaux layoutAboutToBeChanged et layoutChanged directement avec changePersistentIndexes. Le signal layoutAboutToBeChanged est envoy� par cette m�thode pour des raisons de compatibilit�.

L'index sourceParent correspond au parent depuis lequel les lignes sont d�plac�s ; Les num�ros de lignes sourceFirst et sourceLast correspondent aux lignes � d�placer. L'index destinationParent correspond au parent dans lequel les lignes sont d�plac�es. Le num�ro de ligne destinationChild est la ligne dans laquelle les lignes seront d�plac�es. Ainsi, l'index de ligne sourceFirst dans sourceParent deviendra la ligne destinationChild dans destinationParent, suivie par les autres lignes jusqu'� sourceLast.

Par contre, lors du d�placement des lignes dans le m�me parent (si sourceParent et destinationParent sont identiques), les lignes seront plac�es avant la ligne d'index destinationChild. Ainsi, si vous souhaitez d�placer les lignes 0 et 1 pour qu'elles deviennent les lignes 1 et 2, destinationChild devra �tre 3. Dans ce cas, le nouvel index pour la ligne source i (qui est compris entre sourceFirst et sourceLast) est �gal � (destinationChild-sourceLast-1+i).

Notez que, si sourceParent et destinationParent sont identiques, destinationChild ne doit pas �tre compris entre sourceFirst et sourceLast + 1. Vous devez aussi vous assurer de ne pas essayer de d�placer une colonne dans l'un de ses propres enfants ou anc�tres. Cette m�thode retourne false si l'une de ces conditions est vraie, dans ce cas vous devez annuler l'op�ration de d�placement.

image Sp�cifiez les num�ros de la premi�re et derni�re ligne que vous voulez d�placer dans le mod�le. destinationChild sp�cifie la ligne dans le parent de destination. Comme pr�sent� dans le diagramme, nous d�pla�ons les trois lignes 2 � 4 de la source, donc sourceFirst vaut 2 et sourceLast vaut 4. Nous d�pla�ons ces �l�ments au-dessus de la ligne 2 dans la destination, donc destinationChild vaut 2.
 beginMoveRows(sourceParent, 2, 4, destinationParent, 2);

Cela d�place les trois lignes 2, 3 et 4 de la source qui deviennent les lignes 2, 3 et 4 dans la destination. Les autres lignes affect�es sont replac�es en cons�quence.

image Pour ajouter des lignes dans un autre parent, d�placez-les apr�s la derni�re ligne. Comme pr�sent� dans le diagramme, nous d�pla�ons trois lignes dans un ensemble de 6 lignes existantes (finissant par la ligne 5), donc destinationChild vaut 6:
 beginMoveRows(sourceParent, 2, 4, destinationParent, 6);

Cela d�place les lignes cibles � la fin du parent cible, aux positions 6, 7 et 8.

image Pour d�placer les lignes dans un m�me parent, sp�cifiez la ligne vers laquelle d�placer les �l�ments. Comme pr�sent� dans le diagramme, nous d�pla�ons un �l�ment de la ligne 2 � la ligne 0, donc sourceFirst et sourceLast valent 2 et destinationChild vaut 0.
 beginMoveRows(parent, 2, 2, parent, 0);

Notez que les autres lignes peuvent �tre d�plac�es en cons�quence. Notez aussi que lorsque vous d�placez des �l�ments d'un m�me parent, vous ne devez pas essayer de faire des d�placements invalides ou sur place. Dans l'exemple ci-dessus, l'�l�ment 2 est � la ligne 2 avant le d�placement, donc il ne peut pas �tre d�plac� � la ligne 2 (l� o� il est actuellement) ou � la ligne 3 (impossible car la ligne 3 signifie au-dessus de la ligne 3, o� il est d�j�).

image Pour d�placer des lignes dans un m�me parent, sp�cifiez la ligne vers laquelle vous voulez les d�placer. Comme pr�sent� dans le diagramme, nous d�pla�ons un �l�ment de la ligne 2 � la ligne 4, donc sourceFirst et sourceLast valent 2 et destinationChild vaut 4.
 beginMoveRows(parent, 2, 2, parent, 4);

Notez que les autres lignes sont d�plac�es en cons�quence.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi endMoveRows().

void QAbstractItemModel::beginRemoveColumns ( const QModelIndex & parent, int first, int last ) [protected]

D�marre une op�ration de suppression de colonne.

Lors de la r�implementation de la fonction removeColumns() dans une sous-classe, vous devez appeler cette fonction avant la suppression des donn�es dans le mod�le sous-jacent.

L'index parent correspond au parent � partir duquel les colonnes seront supprim�es. Les num�ros de colonnes first et last correspondent � la premi�re et derni�re colonne � supprimer.

image Sp�cifie les index de la premi�re et derni�re colonne de l'intervalle des colonnes � supprimer de l'�l�ment du mod�le. Comme pr�sent� dans le diagramme, nous retirons les trois colonnes entre la colonne 4 et 6, donc first vaut 4 et last vaut 6:
 beginRemoveColumns(parent, 4, 6);

Note : cette fonction envoie le signal columnsAboutToBeRemoved() que les vues ou proxy connect�s doivent traiter avant la suppression des donn�es. Sinon, les vues pourront se trouver dans un �tat invalide.

Voir aussi endRemoveColumns().

void QAbstractItemModel::beginRemoveRows ( const QModelIndex & parent, int first, int last ) [protected]

D�marre une op�ration de suppression de ligne.

Lors de la r�impl�mentation de la fonction removeRows() dans une sous-classe, vous devez appeler cette fonction avant la suppression des donn�es dans le mod�le sous-jacent.

L'index parent correspond au parent � partir duquel les lignes seront supprim�es. Les num�ros de lignes first et last correspondent � la premi�re et � la derni�re ligne � supprimer.

image Sp�cifie les index de la premi�re et derni�re ligne de l'intervalle des lignes � supprimer d'un �l�ment du mod�le. Comme pr�sent� dans le diagramme, nous retirons les deux lignes 2 et 3, donc first vaut 2 et last 3 :
 beginRemoveRows(parent, 2, 3);

Note : cette fonction envoie le signal rowsAboutToBeRemoved() que les vues ou proxy connect�s doivent traiter avant la suppression des donn�es. Sinon, les vues pourront se trouver dans un �tat invalide.

Voir aussi endRemoveRows().

void QAbstractItemModel::beginResetModel () [protected]

D�marre une op�ration de r�initialisation du mod�le.

Une op�ration de r�initialisation r�initialise le mod�le � son �tat actuel dans chacune des vues attach�es.

Note : chaque vue attach�e � ce mod�le sera r�initialis�e.

Lorsque le mod�le est r�initialis�, cela signifie que toutes les donn�es lues � partir du mod�le sont maintenant invalides et doivent �tre r�cup�r�es une nouvelle fois. Cela signifie aussi que l'�l�ment actuel ou les �l�ments s�lectionn�s deviendront invalides.

Lorsqu'un mod�le change radicalement ses donn�es et il peut �tre plus facile d'appeler simplement cette fonction plut�t que d'envoyer le signal dataChanged() pour informer les autres composants lorsque la source de donn�es sous-jacentes, ou sa structure, a chang�.

Vous devez appeler cette fonction avant de r�initialiser toute structure de donn�es interne dans votre mod�le ou dans votre mod�le proxy.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi modelAboutToBeReset(), modelReset() et endResetModel().

QModelIndex QAbstractItemModel::buddy ( const QModelIndex & index ) const [virtual]

Retourne un index du mod�le pour le camarade de l'�l�ment repr�sent� par index. Lorsque l'utilisateur veut �diter un �l�ment, la vue appellera cette fonction pour v�rifier si c'est un autre �l�ment du mod�le qui doit �tre �dit� � sa place. La vue construira ensuite un d�l�gu� utilisant l'index de mod�le retourn� par l'�l�ment camarade.

L'impl�mentation par d�faut de cette fonction consid�re que chaque �l�ment est son propre camarade.

bool QAbstractItemModel::canFetchMore ( const QModelIndex & parent ) const [virtual]

Retourne true s'il y a encore des donn�es disponibles pour parent ; sinon retourne false.

L'impl�mentation par d�faut retourne toujours true.

Si la fonction canFetchMore() retourne true, QAbstractItemView appellera la fonction fetchMore(). Cependant, la fonction fetchMore() est uniquement appel�e lorsque le mod�le est peupl� incr�mentalement.

Voir aussi fetchMore().

void QAbstractItemModel::changePersistentIndex ( const QModelIndex & from, const QModelIndex & to ) [protected]

Modifie le QPersistentModelIndex �gal � l'index from donn� en index to.

Si aucun index de mod�le persistant �gal � l'index from n'est trouv�, aucun changement n'est effectu�.

Voir aussi persistentIndexList() et changePersistentIndexList().

void QAbstractItemModel::changePersistentIndexList ( const QModelIndexList & from, const QModelIndexList & to ) [protected]

Modifie les QPersistentModelIndex �gaux aux index de la liste from en index de la liste to.

Si aucun index de mod�le persistant �gal aux index de la liste from n'est trouv�, aucun changement n'est effectu�.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi persistentIndexList() et changePersistentIndex().

int QAbstractItemModel::columnCount ( const QModelIndex & parent = QModelIndex() ) const [pure virtual]

Retourne le nombre de colonnes des enfants du parent donn�.

Dans la plupart des sous-classes, le nombre de colonnes est ind�pendant du parent.

Par exemple :

 int DomModel::columnCount(const QModelIndex &/*parent*/) const
 {
     return 3;
 }

Note : lors de la r�impl�mentation d'un mod�le de table, la fonction columnCount() doit retourner 0 lorsque le parent est valide.

Voir aussi rowCount().

void QAbstractItemModel::columnsAboutToBeInserted ( const QModelIndex & parent, int start, int end ) [signal]

Le signal est envoy� juste avant que les colonnes soient ins�r�es dans le mod�le. Les nouveaux �l�ments seront positionn�s entre le d�but start et la fin end inclus, dans l'�l�ment parent donn�.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements des dimensions du mod�le. Il peut seulement �tre envoy� par l'impl�mentation de QAbstractItemModel et ne peut pas �tre explicitement �mis par le code d'une sous-classe.

Voir aussi insertColumns() et beginInsertColumns().

void QAbstractItemModel::columnsAboutToBeMoved ( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationColumn ) [signal]

Ce signal est envoy� juste avant que les colonnes soient d�plac�es dans le mod�le. Les �l�ments qui seront d�plac�s sont ceux situ�s entre sourceStart et sourceEnd inclus, dans l'�l�ment sourceParent donn�. Ils seront d�plac�s dans le parent de destination destinationParent � partir de la colonne destinationColumn.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements des dimensions du mod�le. Il ne peut �tre envoy� que par l'impl�mentation de QAbstractItemModel et ne peut pas �tre explicitement �mis par le code d'une sous-classe.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginMoveRows().

void QAbstractItemModel::columnsAboutToBeRemoved ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est envoy� juste avant que les colonnes soient retir�es du mod�le. Les �l�ments qui seront supprim�s sont ceux situ�s entre start et end inclus, dans l'�l�ment parent donn�.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements des dimensions du mod�le. Il ne peut �tre envoy� que par une impl�mentation de QAbstractItemModel et ne peut pas �tre explicitement �mis par le code d'une sous-classe.

Voir aussi removeColumns() et beginRemoveColumns().

void QAbstractItemModel::columnsInserted ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est envoy� apr�s que les colonnes sont ins�r�es dans le mod�le. Les nouveaux �l�ments sont ceux entre start et end inclus, dans l'�l�ment parent parent.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements des dimensions du mod�le. Il ne peut �tre envoy� que par l'impl�mentation de QAbstractItemModel et ne peut pas �tre explicitement �mis par le code d'une sous-classe.

Voir aussi insertColumns() et beginInsertColumns().

void QAbstractItemModel::columnsMoved ( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationColumn ) [signal]

Ce signal est envoy� apr�s que les colonnes sont d�plac�es dans le mod�le. Les �l�ments entre sourceStart et sourceEnd inclus du parent sourceParent donn� sont d�plac�s dans le destinationParent en partant de la colonne destinationColumn.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements des dimensions du mod�le. Il ne peut �tre envoy� que par l'impl�mentation de QAbstractItemModel et ne peut �tre explicitement �mis par le code d'une sous-classe.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginMoveRows().

void QAbstractItemModel::columnsRemoved ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est envoy� apr�s que les colonnes sont supprim�es du mod�le. Les �l�ments qui seront supprim�s sont ceux situ�s entre start et end inclus, dans l'�l�ment parent donn�.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements des dimensions du mod�le. Il ne peut �tre envoy� que par l'impl�mentation de QAbstractItemModel et ne peut �tre explicitement �mis par le code d'une sous-classe.

Voir aussi removeColumns() et beginRemoveColumns().

QModelIndex QAbstractItemModel::createIndex ( int row, int column, void * ptr = 0 ) const [protected]

Cr�e un index de mod�le pour la ligne row et la colonne column donn�es avec le pointeur interne ptr.

Lors de l'utilisation d'un QSortFilterProxyModel, ses indices poss�dent leurs propres pointeurs internes. Il n'est pas recommand� d'acc�der � ces pointeurs en dehors du mod�le. Utilisez la fonction data() � la place.

Cette fonction fournit une interface coh�rente que les sous-classes de mod�le doivent utiliser pour cr�er les index de mod�le.

QModelIndex QAbstractItemModel::createIndex ( int row, int column, quint32 id ) const [protected]

Cr�e un index de mod�le pour la ligne row et la colonne column donn�es avec l'identifiant interne id.

Cette fonction fournit une interface coh�rente que les sous-classes de mod�le doivent utiliser pour cr�er les index de mod�le.

Voir aussi QModelIndex::internalId().

QVariant QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) const [pure virtual]

Retourne les donn�es enregistr�es pour le role donn� pour l'�l�ment r�f�renc� par index.

Note : si vous n'avez pas de valeur � renvoyer, retournez un QVariant invalide au lieu de renvoyer 0.

Voir aussi Qt::ItemDataRole, setData() et headerData().

void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal]

Ce signal est envoy� chaque fois que les donn�es dans un �l�ment existant sont modifi�es.

Si les �l�ments ont le m�me parent, les �l�ments affect�s sont ceux compris entre topLeft et bottomRight inclus. Si les �l�ments n'ont pas le m�me parent, le comportement est ind�fini.

Lors de la r�impl�mentation de la fonction setData(), ce signal doit �tre envoy� explicitement.

Voir aussi headerDataChanged(), setData() et layoutChanged().

bool QAbstractItemModel::dropMimeData ( const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent ) [virtual]

Traite les donn�es data fournies par une op�ration de glisser-d�poser qui s'est termin�e par l'action sp�cifi�e.

Retourne true si la donn�e et l'action peuvent �tre g�r�es par le mod�le ; sinon retourne false.

La ligne row, la colonne column et le parent sp�cifi�s indiquent l'emplacement d'un �l�ment dans le mod�le o� l'op�ration s'est termin�e. Il est de la responsabilit� du mod�le de terminer l'action � l'emplacement correct.

Par exemple, une action de d�pose sur un �l�ment d'un QTreeView peut donner lieu � une insertion des �l�ments sp�cifi�s par row, column et parent soit comme enfants, soit comme fr�res de l'�l�ment.

Lorsque la ligne et la colonne valent -1 cela signifie qu'il est de la responsabilit� du mod�le de d�cider o� placer les donn�es. Cela peut arriver dans un arbre lorsque les donn�es sont d�pos�es dans le parent. Habituellement, les mod�les ajouteront les donn�es dans le parent.

Voir aussi supportedDropActions() et Utiliser le glisser-d�poser avec les vues d'�l�ments.

void QAbstractItemModel::endInsertColumns () [protected]

Termine une op�ration d'insertion de colonnes.

Lors de la r�impl�mentation de la fonction insertColumns() dans une sous-classe, vous devez appeler cette fonction apr�s l'insertion des donn�es dans le mod�le sous-jacent.

Voir aussi beginInsertColumns().

void QAbstractItemModel::endInsertRows () [protected]

Termine une op�ration d'insertion de lignes.

Lors de la r�implementation de la fonction insertRows() dans une sous-classe, vous devez appeler cette fonction apr�s l'insertion des donn�es dans le mod�le sous-jacent.

Voir aussi beginInsertRows().

void QAbstractItemModel::endMoveColumns () [protected]

Termine une op�ration de d�placement de colonnes.

Lors de l'impl�mentation d'une sous-classe, vous devez appeler cette fonction apr�s le d�placement des donn�es dans le mod�le sous-jacent.

Le signal layoutChanged est envoy� par cette m�thode pour des raisons de compatibilit�.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginMoveColumns().

void QAbstractItemModel::endMoveRows () [protected]

Termine une op�ration de d�placement de lignes.

Lors de l'impl�mentation d'une sous-classe, vous devez appeler cette fonction apr�s le d�placement des donn�es dans le mod�le sous-jacent.

Le signal layoutChanged est envoy� par cette m�thode pour des raisons de compatibilit�.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginMoveRows().

void QAbstractItemModel::endRemoveColumns () [protected]

Termine une op�ration de suppression de colonnes.

Lors de la r�implementation de la fonction removeColumns() dans une sous-classe, vous devez appeler cette fonction apr�s la suppression des donn�es dans le mod�le sous-jacent.

Voir aussi beginRemoveColumns().

void QAbstractItemModel::endRemoveRows () [protected]

Termine l'op�ration de suppression de lignes.

Lors de la r�impl�mentation de la fonction removeRows() dans une sous-classe, vous devez appeler cette fonction apr�s la suppression des donn�es dans le mod�le sous-jacent.

Voir aussi beginRemoveRows().

void QAbstractItemModel::endResetModel () [protected]

Compl�te une op�ration de r�initialisation du mod�le.

Vous devez appeler cette fonction apr�s la r�initialisation de toute structure de donn�es de votre mod�le ou mod�le proxy.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginResetModel().

void QAbstractItemModel::fetchMore ( const QModelIndex & parent ) [virtual]

R�cup�re les donn�es disponibles pour les �l�ments ayant pour parent l'index parent sp�cifi�.

R�impl�mentez cette fonction si vous peuplez le mod�le incr�mentalement.

L'impl�mentation par d�faut ne fait rien.

Voir aussi canFetchMore().

Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) const [virtual]

Retourne les indicateurs pour l‹index donn�.

L'impl�mentation de base retourne une combinaison d'indicateurs qui activent l'�l�ment (ItemIsEnabled) et l'autorisent � �tre s�lectionn� (ItemIsSelectable).

Voir aussi Qt::ItemFlags.

bool QAbstractItemModel::hasChildren ( const QModelIndex & parent = QModelIndex() ) const [virtual]

Retourne true si parent poss�de des enfants ; sinon retourne false.

Utilisez la fonction rowCount() sur le parent pour trouver le nombre d'enfants.

Voir aussi parent() et index().

bool QAbstractItemModel::hasIndex ( int row, int column, const QModelIndex & parent = QModelIndex() ) const

Retourne true si le mod�le retourne un QModelIndex valide pour la ligne row et la colonne column avec parent, sinon retourne false.

QVariant QAbstractItemModel::headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const [virtual]

Retourne les donn�es de l'en-t�te pour le role et la section donn�s avec l‹orientation sp�cifi�e.

Pour les en-t�tes horizontaux, le num�ro de section correspond au num�ro de colonne. Sym�triquement, pour les en-t�tes verticaux, le num�ro de section correspond au num�ro de ligne.

Voir aussi Qt::ItemDataRole, setHeaderData() et QHeaderView.

void QAbstractItemModel::headerDataChanged ( Qt::Orientation orientation, int first, int last ) [signal]

Ce signal est envoy� chaque fois qu'un en-t�te est modifi�e. L'orientation indique si la modification concerne l'en-t�te horizontal ou vertical. Les sections de l'en-t�te comprises entre first et last doivent �tre mises � jour.

Lors de la r�implementation de la fonction setHeaderData(), ce signal doit �tre envoy� explicitement.

Si vous changez le nombre de colonnes ou de lignesv vous n'avez pas besoin d'envoyer ce signal, mais utilisez les fonctions begin/end (r�f�rez-vous � la section sur la d�rivation dans la description de la classe QAbstractItemModel pour plus de d�tails).

Voir aussi headerData(), setHeaderData() et dataChanged().

QModelIndex QAbstractItemModel::index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const [pure virtual]

Retourne l'index de l'�l�ment du mod�le sp�cifi� par la ligne row, la colonne column et l'index parent.

Lors de la r�impl�mentation de cette fonction dans des classes d�riv�es, appelez createIndex() pour g�n�rer des index de mod�le que les autres composants peuvent utiliser pour acc�der aux �l�ments de votre mod�le.

Voir aussi createIndex().

bool QAbstractItemModel::insertColumn ( int column, const QModelIndex & parent = QModelIndex() )

Ins�re une colonne unique avant la colonne column donn�e en tant qu'enfant du parent sp�cifi�.

Retourne true si la colonne est ins�r�e ; sinon retourne false.

Voir aussi insertColumns(), insertRow() et removeColumn().

bool QAbstractItemModel::insertColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) [virtual]

Sur les mod�les qui le g�rent, cette fonction ins�re count nouvelles colonnes dans le mod�le avant la colonne column donn�e. Les �l�ments des nouvelles colonnes seront des enfants de l'�l�ment repr�sent� par l'index de mod�le parent.

Si column est 0, les colonnes sont ajout�es avant les colonnes existantes.

Si column est columnCount(), les colonnes sont ajout�es apr�s les colonnes existantes.

Si parent ne poss�de pas d'enfant, une ligne unique avec count colonnes est ins�r�e.

Retourne true si l'insertion des colonnes a r�ussi ; sinon retourne false.

L'impl�mentation de la classe de base ne fait rien et retourne false.

Si vous impl�mentez votre propre mod�le, vous pouvez r�impl�menter cette fonction si vous souhaitez g�rer les insertions. L?autre branche de l?alternative est de fournir votre propre API pour la modification des donn�es.

Voir aussi insertRows(), removeColumns(), beginInsertColumns() et endInsertColumns().

bool QAbstractItemModel::insertRow ( int row, const QModelIndex & parent = QModelIndex() )

Note : l'impl�mentation de la classe de base de cette fonction ne fait rien et retourne false.

Ins�re une ligne unique avant la ligne row donn�e en tant qu'enfant de l'�l�ment parent sp�cifi�.

Retourne true si la ligne a �t� ins�r�e ; sinon retourne false.

Voir aussi insertRows(), insertColumn() et removeRow().

bool QAbstractItemModel::insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() ) [virtual]

Note : l'impl�mentation de la classe de base de cette fonction ne fait rien et retourne false.

Sur les mod�les qui le g�rent, ins�re count lignes dans le mod�le avant la ligne row. Les �l�ments des nouvelles lignes seront des enfants de l'�l�ment ayant pour index de mod�le parent.

Si row est 0, les lignes sont ajout�es avant les lignes du parent.

Si row est rowCount(), les lignes sont ajout�es apr�s les lignes existantes du parent.

Si parent n'a pas d'enfant, une colonne avec count lignes est ajout�e.

Retourne true l'insertion a r�ussi ; sinon retourne false.

Si vous impl�mentez votre propre mod�le, vous pouvez r�impl�menter cette fonction si vous souhaitez g�rer les insertions. L'autre possibilit� est de fournir votre propre API pour la modification des donn�es. Dans tous les cas, vous devez appeler beginInsertRows() et endInsertRows() pour signaler aux autres composants que le mod�le a �t� modifi�.

Voir aussi insertColumns(), removeRows(), beginInsertRows() et endInsertRows().

QMap<int, QVariant> QAbstractItemModel::itemData ( const QModelIndex & index ) const [virtual]

Retourne une QMap contenant des valeurs pour tous les r�les pr�d�finis du mod�le pour l'�l�ment correspondant � l‹index donn�.

R�impl�mentez cette fonction si vous souhaitez �tendre le comportement par d�faut de cette fonction afin d'inclure des r�les personnalis�s.

Voir aussi setItemData(), Qt::ItemDataRole et data().

void QAbstractItemModel::layoutAboutToBeChanged () [signal]

Ce signal est �mis juste avant que la disposition du mod�le soit modifi�e. Les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de disposition du mod�le.

Les sous-classes doivent mettre � jour tous les mod�les d'index persistants apr�s l'envoi du signal layoutAboutToBeChanged().

Cette fonction a �t� introduite dans Qt 4.2.

Voir aussi layoutChanged() et changePersistentIndex().

void QAbstractItemModel::layoutChanged () [signal]

Ce signal est envoy� chaque fois que la disposition des �l�ments expos�s par le mod�le est modifi�e, par exemple lorsque le mod�le est tri�. Lorsque ce signal est re�u par la vue, il doit mettre � jour la disposition des �l�ments pour refl�ter ce changement.

Lors de la d�rivation de QAbstractItemModel ou QAbstractProxyModel, assurez-vous d'envoyer le signal layoutAboutToBeChanged() avant de changer l'ordre des �l�ments ou d'alt�rer la structure des donn�es expos�es aux vues et envoyez le signal layoutChanged() apr�s le changement de la disposition.

Les sous-classes doivent mettre � jour tous les mod�les d'index persistants avant l'envoi du signal layoutChanged(). Autrement dit, lorsque la structure est modifi�e, l'ordre des op�rations est le suivant :

  • envoi du signal layoutAboutToBeChanged ;
  • sauvegarde du QModelIndex modifi� ;
  • mise � jour de vos donn�es internes ;
  • appel de la fonction changePersistentIndex() ;
  • envoi du signal layoutChanged.

Voir aussi layoutAboutToBeChanged(), dataChanged(), headerDataChanged(), modelReset() et changePersistentIndex().

QModelIndexList QAbstractItemModel::match ( const QModelIndex & start, int role, const QVariant & value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags( Qt::MatchStartsWith | Qt::MatchWrap ) ) const [virtual]

Retourne une liste d'index des �l�ments de la colonne de l'index start pour lesquels les donn�es stock�es avec le r�le role correspondent � la valeur value sp�cifi�e. La m�thode de recherche est d�termin�e par les drapeaux flags donn�s. La liste retourn�e peut �tre vide.

La recherche d�marre � partir de l'index start et continue jusqu'� ce que le nombre d'�l�ments trouv�s soit �gal � hits, ou que la recherche atteigne la derni�re ligne, qu'elle revienne sur l'index start - si l'indicateur MatchWrap est sp�cifi� dans flags. Si vous souhaitez trouver tous les �l�ments correspondants, utilisez hits = -1.

Par d�faut, cette fonction utilise une comparaison de cha�ne de caract�res sur tous les �l�ments, circulaire, recherchant les �l�ments commen�ant par value.

Note : l'impl�mentation par d�faut de cette fonction ne recherche que dans une colonne. Reimpl�mentez cette fonction pour inclure un comportement de recherche diff�rent.

QMimeData * QAbstractItemModel::mimeData ( const QModelIndexList & indexes ) const [virtual]

Retourne un objet qui contient les donn�es s�rialis�es des �l�ments correspondant � la liste indexes sp�cifi�e. Le format utilis� pour d�crire les donn�es encod�es est obtenu � partir de la fonction mimeTypes().

Si la liste d'index est vide ou si aucun type MIME n'est g�r�, la fonction renvoie 0 et non une liste vide s�rialis�e.

Voir aussi mimeTypes() et dropMimeData().

QStringList QAbstractItemModel::mimeTypes () const [virtual]

Retourne une liste de types MIME pouvant �tre utilis�s pour d�crire une liste d'index de mod�le.

Voir aussi mimeData().

void QAbstractItemModel::modelAboutToBeReset () [signal]

Ce signal est envoy� lorsque la fonction reset() est appel�e, avant que l'�tat interne du mod�le (c'est-�-dire les index de mod�les persistants) ne soit invalid�.

Cette fonction a �t� introduite dans Qt 4.2.

Voir aussi beginResetModel() et modelReset().

void QAbstractItemModel::modelReset () [signal]

Ce signal est envoy� lorsque la fonction reset() est appel�e, apr�s que l'�tat interne du mod�le (c'est-�-dire les index de mod�les persistants) est invalid�.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi endResetModel() et modelAboutToBeReset().

QModelIndex QAbstractItemModel::parent ( const QModelIndex & index ) const [pure virtual]

Retourne le parent de l'�l�ment du mod�le ayant l‹index donn�. Si l'�l�ment n'a pas de parent, un QModelIndex invalide est retourn�.

Une convention courante utilis�e dans les mod�les exposant des structures de donn�es en arbre est que seuls les �l�ments de la premi�re colonne ont des enfants. Dans ce cas, lors de la r�impl�mentation de cette fonction dans une sous-classe, la colonne du QModelIndex retourn� devrait �tre 0.

Lors de la r�impl�mentation de cette fonction dans une sous-classe, �vitez d'appeler les fonctions membres de QModelIndex, telles que QModelIndex::parent(), car les index appartenant � votre mod�le appelleront simplement votre impl�mentation, ce qui produira une r�cursion infinie.

Voir aussi createIndex().

QModelIndexList QAbstractItemModel::persistentIndexList () const [protected]

Retourne la liste des index enregistr�s comme index persistants dans le mod�le.

Cette fonction a �t� introduite dans Qt 4.2.

bool QAbstractItemModel::removeColumn ( int column, const QModelIndex & parent = QModelIndex() )

Supprime la colonne column des �l�ments enfants du parent sp�cifi�.

Retourne true si la colonne est supprim�e ; sinon retourne false.

Voir aussi removeColumns(), removeRow() et insertColumn().

bool QAbstractItemModel::removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) [virtual]

Pour les mod�les qui le g�rent, supprime du mod�le count colonnes � partir de la colonne column pour le parent parent.

Retourne true si les colonnes ont �t� supprim�es ; sinon retourne false.

L'impl�mentation de la classe de base ne fait rien et retourne false.

Si vous impl�mentez votre propre mod�le, vous pouvez r�impl�menter cette fonction si vous souhaitez g�rer la suppression. L'autre possibilit� est de fournir votre propre API pour la modification des donn�es.

Voir aussi removeColumn(), removeRows(), insertColumns(), beginRemoveColumns() et endRemoveColumns().

bool QAbstractItemModel::removeRow ( int row, const QModelIndex & parent = QModelIndex() )

Supprime la ligne row des �l�ments enfants du parent parent sp�cifi�.

Retourne true si la ligne est supprim�e ; sinon retourne false.

Cette fonction est une fonction de commodit� qui appelle removeRows(). L'impl�mentation de QAbstractItemModel de la fonction removeRows() ne fait rien.

Voir aussi removeRows(), removeColumn() et insertRow().

bool QAbstractItemModel::removeRows ( int row, int count, const QModelIndex & parent = QModelIndex() ) [virtual]

Sur les mod�les qui le g�rent, supprime dans le mod�le count lignes en partant de la ligne row dans le parent.

Retourne true si la suppression a r�ussi ; sinon retourne false.

L'impl�mentation de la classe de base ne fait rien et retourne false.

Si vous impl�mentez votre propre mod�le, vous pouvez r�impl�menter cette fonction si vous souhaitez g�rer la suppression. L'autre possibilit� est de fournir votre propre API pour la modification des donn�es.

Voir aussi removeRow(), removeColumns(), insertColumns(), beginRemoveRows() et endRemoveRows().

void QAbstractItemModel::reset () [protected]

R�initialise le mod�le � son �tat d'origine dans les vues attach�es.

Note : utilisez les fonctions beginResetModel() et endResetModel() � chaque fois que possible. Utilisez cette m�thode seulement s'il est impossible d'appeler la fonction beginResetModel() avant d'invalider le mod�le. Sinon cela peut provoquer un comportement ind�fini, surtout lors de l'utilisation de mod�le proxy.

void QAbstractItemModel::revert () [virtual slot]

Indique au mod�le qu'il doit oublier les informations mises en cache. Cette fonction est typiquement utilis�e lors de l'�dition de lignes.

Voir aussi submit().

const QHash<int, QByteArray> & QAbstractItemModel::roleNames () const

Retourne les noms de r�le du mod�le.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi setRoleNames().

int QAbstractItemModel::rowCount ( const QModelIndex & parent = QModelIndex() ) const [pure virtual]

Retourne le nombre de lignes dans le parent donn�. Lorsque le parent est valide, cela signifie que rowCount retourne le nombre d'enfants du parent.

Note : lors de l'impl�mentation d'un mod�le bas� sur une table, la fonction rowCount() devrait retourner 0 lorsque le parent est valide.

Voir aussi columnCount().

void QAbstractItemModel::rowsAboutToBeInserted ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est �mis juste avant que les lignes ne soient ins�r�es dans le mod�le. Les nouveaux �l�ments seront positionn�s entre start et end inclus, sous l'�l�ment parent.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de dimensions du mod�le. Il ne peut �tre �mis que par l'impl�mentation de QAbstractItemModel et ne peut �tre �mis explicitement par le code d'une sous-classe.

Voir aussi insertRows() et beginInsertRows().

void QAbstractItemModel::rowsAboutToBeMoved ( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationRow ) [signal]

Ce signal est �mis avant que les lignes ne soient d�plac�es dans le mod�le. Les �l�ments qui seront d�plac�s sont ceux compris entre sourceStart et sourceEnd inclus, sous l'�l�ment parent sourceParent. Ils seront d�plac�s dans le parent destinationParent � partir de la ligne destinationRow.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de dimensions du mod�le. Il ne peut �tre �mis que par l'impl�mentation de QAbstractItemModel et ne peut �tre �mis explicitement par le code d'une sous-classe.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginMoveRows().

void QAbstractItemModel::rowsAboutToBeRemoved ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est envoy� juste avant que les lignes ne soient supprim�es du mod�le. Les �l�ments supprim�s sont ceux compris entre start et end inclus, sous l'�l�ment parent parent.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de dimensions du mod�le. Il ne peut �tre �mis que par l'impl�mentation de QAbstractItemModel et ne peut �tre �mis explicitement par le code d'une sous-classe.

Voir aussi removeRows() et beginRemoveRows().

void QAbstractItemModel::rowsInserted ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est envoy� juste apr�s que les lignes sont ins�r�es dans le mod�le. Les nouveaux �l�ments sont ceux compris entre start et end inclus, sous l'�l�ment parent parent.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de dimensions du mod�le. Il ne peut �tre �mis que par l'impl�mentation de QAbstractItemModel et ne peut �tre �mis explicitement par le code d'une sous-classe.

Voir aussi insertRows() et beginInsertRows().

void QAbstractItemModel::rowsMoved ( const QModelIndex & sourceParent, int sourceStart, int sourceEnd, const QModelIndex & destinationParent, int destinationRow ) [signal]

Ce signal est envoy� apr�s que les lignes sont d�plac�es dans le mod�le. Les �l�ments entre sourceStart et sourceEnd inclus de l'�l�ment parent sourceParent ont �t� d�plac�s dans le parent destinationParent � la ligne destinationRow.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de dimensions du mod�le. Il ne peut �tre �mis que par l'impl�mentation de QAbstractItemModel et ne peut �tre �mis explicitement par le code d'une sous-classe.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi beginMoveRows().

void QAbstractItemModel::rowsRemoved ( const QModelIndex & parent, int start, int end ) [signal]

Ce signal est envoy� apr�s que les lignes sont supprim�es du mod�le. Les �l�ments supprim�s sont ceux compris entre start et end inclus, sous l'�l�ment parent parent.

Note : les composants connect�s � ce signal l'utilisent pour s'adapter aux changements de dimensions du mod�le. Il ne peut �tre �mis que par l'impl�mentation de QAbstractItemModel et ne peut �tre �mis explicitement par le code d'une sous-classe.

Voir aussi removeRows() et beginRemoveRows().

bool QAbstractItemModel::setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ) [virtual]

D�finit le role de la donn�e pour l'�l�ment � l'index index � la valeur value.

Retourne true en cas de r�ussite ; sinon retourne false.

Le signal dataChanged() doit �tre envoy� si les donn�es ont �t� d�finies avec succ�s.

L'impl�mentation de classe de base retourne false. Cette fonction et la fonction data() doivent �tre r�impl�ment�es pour les mod�les �ditables.

Voir aussi Qt::ItemDataRole, data() et itemData().

bool QAbstractItemModel::setHeaderData ( int section, Qt::Orientation orientation, const QVariant & value, int role = Qt::EditRole ) [virtual]

D�finit la donn�e pour le role et la section donn�s de l'ent�te ayant l‹orientation sp�cifi�e � la valeur value fournie.

Retourne true si la donn�e de l'en-t�te a �t� mise � jour ; sinon retourne false.

Lors de la r�impl�mentation de cette fonction, le signal headerDataChanged() doit �tre envoy� explicitement.

Voir aussi Qt::ItemDataRole et headerData().

bool QAbstractItemModel::setItemData ( const QModelIndex & index, const QMap<int, QVariant> & roles ) [virtual]

D�finit les donn�es de r�le pour l'�l�ment � l'index index aux valeurs associ�es dans roles, pour chaque Qt::ItemDataRole.

Retourne true en cas de succ�s ; sinon retourne false.

Les r�les qui ne sont pas dans roles ne seront pas modifi�s.

Voir aussi setData(), data() et itemData().

void QAbstractItemModel::setRoleNames ( const QHash<int, QByteArray> & roleNames ) [protected]

D�finit les noms de r�les du mod�le � roleNames.

Cette fonction permet la correspondance entre les identifiants de r�le et les noms de propri�t�s de r�le dans les interfaces utilisateur d�claratives. Cette fonction doit �tre appel�e avant d'utiliser le mod�le. La modification des noms de r�les apr�s que le mod�le a �t� d�fini peut provoquer un comportement ind�fini.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi roleNames().

void QAbstractItemModel::setSupportedDragActions ( Qt::DropActions actions )

D�finit les actions de d�placement g�r�es pour les �l�ments dans le mod�le.

Cette fonction a �t� introduite dans Qt 4.2.

Voir aussi supportedDragActions() et Utilisation du glisser-d�poser avec les vues d'�l�ments.

QModelIndex QAbstractItemModel::sibling ( int row, int column, const QModelIndex & index ) const

Retourne les �l�ments de m�me niveau � la ligne row et la colonne column pour l'�l�ment � l'index index ou un QModelIndex invalide s'il n'y a pas d'autres �l�ments � cet emplacement.

La fonction sibling() est simplement une fonction de commodit� qui trouve le parent de l'�l�ment et l'utilise pour r�cup�rer l'index des �l�ments enfants dans la ligne row et la colonne column.

Voir aussi index(), QModelIndex::row() et QModelIndex::column().

void QAbstractItemModel::sort ( int column, Qt::SortOrder order = Qt::AscendingOrder ) [virtual]

Trie le mod�le par la colonne column dans l'ordre order donn�.

L'impl�mentation de base ne fait rien.

QSize QAbstractItemModel::span ( const QModelIndex & index ) const [virtual]

Retourne le nombre de lignes et de colonnes occup�es par l'�l�ment repr�sent� par l'index index.

Note : actuellement, cette valeur n'est pas utilis�e.

bool QAbstractItemModel::submit () [virtual slot]

Indique au mod�le qu'il doit transf�rer les informations mises en cache vers l'enregistrement d�finitif. Cette fonction est typiquement utilis�e pour l'�dition des lignes.

Retourne true s'il n'y a pas d'erreur ; sinon retourne false.

Voir aussi revert().

Qt::DropActions QAbstractItemModel::supportedDragActions () const

Retourne les actions g�r�es par les donn�es dans ce mod�le.

L'impl�mentation par d�faut retourne supportedDropActions() si aucune valeur sp�cifique n'a �t� d�finie avec la fonction setSupportedDragActions().

La fonction supportedDragActions() est utilis�e par QAbstractItemView::startDrag() comme valeur par d�faut lorsqu'un d�placement est effectu�.

Voir aussi setSupportedDragActions(), Qt::DropActions et Utilisation du glisser-d�poser avec les vues d'�l�ments.

Qt::DropActions QAbstractItemModel::supportedDropActions () const [virtual]

Retourne les actions de d�pose g�r�es par ce mod�le.

L'impl�mentation par d�faut retourne Qt::CopyAction. R�impl�mentez cette fonction si vous souhaitez g�rer des actions suppl�mentaires. Vous pouvez aussi r�impl�menter la fonction dropMimeData() pour g�rer des op�rations suppl�mentaires.

Cette fonction a �t� introduite dans Qt 4.2.

Voir aussi dropMimeData(), Qt::DropActions et Utilisation du glisser-d�poser avec les vues d'�l�ments.

Remerciements

Merci � Alexandre Laurent pour la traduction, ainsi qu'� Ilya Diallo et Claude Leloup pour la relecture !

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2025 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !