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  · 

QAbstractTableModel

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

  
 #include <QAbstractTableModel>

Héritage

Hérite de QAbstractItemModel.

Hérité par QSqlQueryModel.

Description détaillée

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

QAbstractTableModel fournit une interface standard pour les modèles qui représentent leurs données sous forme d'un tableau bidimensionnel d'éléments. Il ne peut être utilisé directement mais doit être hérité.

Comme le modèle fournit une interface plus spécialisée que QAbstractItemModel, il n'est pas adapté à une utilisation avec des vues de type arbre, mais il peut être utilisé pour fournir des données à un QListView. Si vous avez besoin de représenter une simple liste d'éléments et avez besoin d'un modèle contenant une seule colonne de données, hériter de QAbstractListModel peut être plus indiqué.

Les fonctions rowCount() et columnCount() retournent les dimensions de la table. Pour récupérer un index correspondant à un élément dans le modèle, utiliser index() en fournissant les numéros de ligne et de colonne.

Héritage

Quand vous héritez de QAbstractTableModel, vous devez implémenter rowCount(), columnCount() et data(). Les implémentations par défaut des fonctions index() et parent() sont fournies par QAbstractTableModel. Les modèles qui voudront être complets implémenteront aussi headerData().

Les modèles éditables auront besoin d'implémenter setData() et l'implémentation de flags() devra retourner une valeur contenant Qt::ItemIsEditable.

Les modèles qui fournissent des interfaces à des structures de données redimensionnables peuvent fournir des implémentations de insertRows(), removeRows(), insertColumns() et removeColumns(). Dans l'implémentation de ces fonctions, il est important d'appeler les fonctions appropriées afin que toutes les vues connectées soient informées de tout changement :

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

Note : voir aussi Classes de modèle, QAbstractItemModel, QAbstractListModel et Pixelator Example.

Fonctions membres

QAbstractTableModel::QAbstractTableModel ( QObject * parent = 0 )

Construit un modèle abstrait de tableau pour le parent donné.

QAbstractTableModel::~QAbstractTableModel ()

Détruit le modèle abstrait de tableau.

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

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

QModelIndex QAbstractTableModel::index ( int row, int column, 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 ayant pour parent parent.

Voir aussi parent().

Remerciements

Merci à Nicolas Cornu pour la traduction, ainsi qu'à Ilya Diallo, Dimitry Ernot 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 © 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 !