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  · 

QAbstractListModel

La classe QAbstractListModel fournit un modèle abstrait qui peut être hérité pour créer des modèles de listes unidimensionnelles. Plus d'informations...

#include <QAbstractListModel>

Voir la position dans l'arbre des classes.

  

Héritage

Hérite de QAbstractItemModel.

Hérité par QStringListModel.

Description détaillée

La classe QAbstractListModel fournit un modèle abstrait qui peut être hérité pour créer des modèles de listes unidimensionnelles.

QAbstractListModel fournit une interface standard pour des modèles qui représentent leurs données comme une simple séquence non hiérarchique d'éléments. Elle ne doit pas être utilisée telle quelle mais doit être héritée.

Comme la classe fournit une interface plus spécialisée que QAbstractItemModel, elle n'est pas adaptée pour représenter un modèle d'arbre. Il est nécessaire d'hériter QAbstractItemModel si vous voulez fournir un modèle pour ce genre d'utilisation. Si vous avez besoin de plusieurs modèles listes pour manipuler des données, il peut être plus approprié d'hériter plutôt de la classe QAbstractTableModel.

Des modèles simples peuvent être créés en héritant de cette classe et en implémentant le nombre minimum de fonctions requises. Par exemple, on peut implémenter un modèle en lecture seule basé sur QStringList qui fournit une liste de chaînes à un widget QListView. Dans un tel cas, il suffit d'implémenter la fonction rowCount() qui retourne le nombre d'éléments dans la liste et la fonction data() pour récupérer les éléments de la liste.

Comme le modèle représente une structure unidimensionnelle, la fonction rowCount() retourne le nombre total d'éléments dans le modèle. La fonction columnCount() est implémentée pour l?interopérabilité avec tous les types de vues mais par défaut elle informe les vues que le modèle ne contient qu'une seule colonne.

Héritage

Quand vous héritez de QAbstractListModel, vous devez fournir des implémentations des fonctions rowCount() et data(). Les modèles doivent de préférence fournir une implémentation de headerData().

Pour les modèles de listes éditables, vous devez aussi fournir une implémentation de setData() et de flags() qui doit retourner une valeur contenant Qt::ItemIsEditable.

Notez que QAbstractListModel fournit une implémentation par défaut de columnCount() qui informe les vues que le modèle ne contient qu'une seule colonne d'éléments.

Les modèles qui fournissent des interfaces pour des structures de données redimensionnables peuvent fournir des implémentations de insertRows() et removeRows(). Quand on implémente ces fonctions, il est important d'appeler les fonctions appropriées pour que toutes les vues connectées soient informées des changements :

Note : des directives générales pour dériver les modèles sont disponibles dans la Référence de dérivation des modèles.

Voir aussi Classes modèle, Référence de dérivation des modèles, QAbstractItemView, QAbstractTableModel et Exemple de puzzle de vues d'éléments.

Fonctions membres

QAbstractListModel::QAbstractListModel ( QObject * parent = 0 )

Construit un modèle abstrait de liste avec le parent donné.

QAbstractListModel::~QAbstractListModel ()

Détruit le modèle abstrait de liste.

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

Réimplémentation de QAbstractItemModel::dropMimeData().

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

Réimplémentation de QAbstractItemModel::index().

Retourne l'index de la donnée à la ligne row et la colonne column avec le parent donné.

Voir aussi parent().

Remerciements

Merci à Nicolas Cornu pour la traduction et Ilya Diallo, Dimitry Ernot ainsi que Claude Leloup pour leur 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 © 2024 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 !