Qt - ce qui est préférable d'utiliser - des widgets ou des points de vue? (Un Arbre, Un Tableau, De La Liste)
J'ai commencé à utiliser Qt modèle de système de vision avec QStandardItemModel et certains points de vue. Mais ensuite, j'ai remarqué qu'il y a aussi des Widgets - Arbre, Tableau, Liste, qui s'est vraiment passé à peu près le même dans l'utilisation que de points de vue. J'ai lu Qt docs sujet et l'honnêteté de ne pas comprendre ce dont nous avons besoin également des widgets, pourquoi les points de vue n'est pas suffisant..
Si vous êtes satisfait par le widget de la fonctionnalité - utiliser les widgets. Si vous voulez plus de contrôle sur les données - utiliser des points de vue avec vos propres modèles.
OriginalL'auteur ManInTheHood | 2013-01-25
Vous devez vous connecter pour publier un commentaire.
Vous devez savoir deux choses.
Quelle est l'importance de la vitesse de chargement des données. Voir cette question - Qt modèle/vue vs standard widget.
Avez besoin de la mise en œuvre de QAbstractItemModel qui peut être plus utile que QStandardItemModel? Par exemple, si vous avez déjà QVector qui ont besoin de présenter un point de vue, pour vous sera d'une grande utilité propre modèle de standard.
OriginalL'auteur Milovidov
Q*Widgets sont faciles à utiliser pour une utilisation facile des cas. Ils pourraient devenir fastidieux si à gérer quand vous avez à regarder et mettre à jour les éléments par la suite. Ensuite, il est souvent plus facile d'écrire un modèle personnalisé une fois que vous groked le concept. Aussi avec beaucoup d'éléments, des modèles auront une meilleure performance.
Des modèles combinés avec les vues sont plus souples: Ils permettent l'utilisation de proxy modèles, en particulier QSortFilterProxyModel, ce qui rend la base de tri et de filtrage assez simple.
Si des modèles en voir trop intimidante (ils peuvent devenir complexes, en particulier pour les modèles d'arbre) et que vous voulez la flexibilité de points de vue et les procurations, je vous suggère de regarder dans QStandardItemModel: Il vous donne un élément de base de l'API comme Q*Widget de le faire, mais ils peuvent être combinés librement avec des proxys différents et points de vue. Si vous à un certain point à décider d'aller pour un modèle personnalisé, il suffit de remplacer le modèle et vous ne devez pas toucher les procurations et les points de vue à tous.
OriginalL'auteur Frank Osterfeld