Modele de tableau de visualisation

L`utilisation du modèle/vue (ou document/vue) pour gérer les données signifie accéder aux données via une source de données et fournir un moyen d`afficher les données récupérées dans un widget. Dans le cas des données tabulaires, cela peut signifier avoir une base de données SQL qui contient les données dans une table de base de données et un widget pour présenter un sous-ensemble des enregistrements de données. QT fournit déjà un mécanisme pour ce faire avec son module QSql et la classe QDataTable. Mais que faites-vous si la source de données n`est pas une base de données SQL, mais est un fichier ou une structure de données en mémoire? Dans cet article, nous présenterons une sous-classe de modèle/vue QTable qui peut fonctionner avec n`importe quelle source de données qui fournit quelques fonctions simples. Le slot privé updateContents () appelle simplement QTable:: updateContents (). Nous allons connecter cette fente au signal Datachbride () de la source de données, de sorte que la table se repeint quand les données changent. Le code source est dans TableRenderDemo. java. Il ajoute des conseils d`outils aux cellules de la colonne sport avec le code suivant: utilisez l`option actualiser les schémas et les tables pour repeupler le volet de navigation gauche de SQL Runner avec les schémas et les tables de la base de données. Maintenant que vous avez une table liée, vous pouvez modifier n`importe quelle cellule dans la feuille de calcul, y compris l`ajout et la suppression de lignes et de colonnes. Le modèle de données dans Power Pivot se synchronise immédiatement. Le tri et le filtrage des tables sont gérés par un objet trieur.

La façon la plus simple de fournir un objet trieur consiste à définir la propriété liée autoCreateRowSorter sur true: pour obtenir des descriptions détaillées et des informations de configuration pour les propriétés de génération de rapports, consultez Propriétés de rapport Power View. Le constructeur JTable utilisé par SimpleTableDemo crée son modèle de table avec du code comme ceci: nommez la table. Dans la fenêtre Excel, cliquez sur conception des outils de table. Dans le groupe propriétés, tapez un nom pour la table. Dans le “modèle Browser” vous pouvez cliquer avec le bouton droit sur la table et choisir “afficher dans le diagramme” dans le menu contextuel cet article décrit les propriétés de la table de modèle tabulaire. Les propriétés décrites ici sont différentes de celles de la boîte de dialogue Modifier les propriétés de la table, qui définissent les colonnes de la source qui sont importées. Si vous souhaitez contourner ces restrictions, vous devez implémenter votre propre modèle de table, comme décrit dans création d`un modèle de table. En mode mise à jour, choisissez manuel ou automatique. Automatique est la valeur par défaut. Si vous basculez vers Manual, les mises à jour ne se produisent que lorsque vous utilisez les commandes mettre à jour tout ou mettre à jour sélectionnées dans le ruban table liée dans la fenêtre Power Pivot, ou la commande mettre à jour tout dans le ruban Power pivot dans Excel.

Si l`utilisateur démarre la modification d`une cellule, createEditor () est appelé avec la ligne et la colonne comme paramètres. Si la fonction renvoie 0, cela signifie que la cellule ne peut pas être modifiée. Nous venons de créer, rappelez-vous, et de renvoyer un QLineEdit. QTable s`assure que le widget de l`éditeur est correctement placé. Le paramètre initFromCell est utilisé pour déterminer si nous devons ou non initialiser l`éditeur avec le contenu actuel de la cellule. Les fonctions publiques restantes sont réimplémentées en tant que fonctions vides. Normalement, QTable utilise ces fonctions conjointement avec QTableItems; mais puisque nous n`utilisons pas QTableItems nous devons nous assurer que ces fonctions ne font rien. Par défaut, le texte de la pointe de l`outil affiché pour une cellule de tableau est déterminé par le rendu de la cellule.

Toutefois, il peut parfois être plus simple de spécifier le texte de la pointe de l`outil en substituant l`implémentation de JTable de la méthode getToolTipText (MouseEvent). Cette section vous montre comment utiliser les deux techniques. Voici le code de TableDialogEditDemo. Java qui enregistre une occurrence de ColorRenderer comme rendu par défaut pour toutes les données de couleur: si l`utilisateur modifie une largeur de colonne ou une hauteur de ligne dans la table lors de la modification d`une cellule, la géométrie de l`éditeur peut nécessiter une mise à jour.