QItemEditorFactory Class
La classe QItemEditorFactory fournit des widgets permettant de modifier les données des éléments dans les vues et les délégués. Plus d'informations...
| En-tête : | #include <QItemEditorFactory> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
Fonctions publiques
| QItemEditorFactory() | |
| virtual | ~QItemEditorFactory() |
| virtual QWidget * | createEditor(int userType, QWidget *parent) const |
| void | registerEditor(int userType, QItemEditorCreatorBase *creator) |
| virtual QByteArray | valuePropertyName(int userType) const |
Membres publics statiques
| const QItemEditorFactory * | defaultFactory() |
| void | setDefaultFactory(QItemEditorFactory *factory) |
Description détaillée
Lors de l'édition de données dans une vue d'élément, les éditeurs sont créés et affichés par un délégué. QStyledItemDelegate QItemEditorFactory, qui est le délégué par défaut installé sur les vues d'éléments de Qt, utilise un QItemEditorFactory pour créer des éditeurs pour lui. Une instance unique par défaut fournie par QItemEditorFactory est utilisée par tous les délégués d'éléments. Si vous définissez une nouvelle fabrique par défaut avec setDefaultFactory(), la nouvelle fabrique sera utilisée par les délégués existants et nouveaux.
Une fabrique conserve une collection d'instances QItemEditorCreatorBase, qui sont des éditeurs spécialisés produisant des éditeurs pour un type de données QVariant particulier (Tous les modèles Qt stockent leurs données dans QVariants).
Widgets d'édition standard
L'implémentation standard de la fabrique fournit des éditeurs pour une variété de types de données. Ceux-ci sont créés chaque fois qu'un délégué doit fournir un éditeur pour les données fournies par un modèle. Le tableau suivant montre la relation entre les types et les éditeurs standard fournis.
| Type | Éditeur Widget |
|---|---|
| bool | QComboBox |
| double | QDoubleSpinBox |
| int | QSpinBox |
| int non signé | |
| QDate | QDateEdit |
| QDateTime | QDateTimeEdit |
| QPixmap | QLabel |
| QString | QLineEdit |
| QTime | QTimeEdit |
Des éditeurs supplémentaires peuvent être enregistrés à l'aide de la fonction registerEditor().
Voir également QStyledItemDelegate et Model/View Programming.
Documentation des fonctions membres
QItemEditorFactory::QItemEditorFactory()
Construit une nouvelle usine d'édition d'éléments.
[virtual noexcept] QItemEditorFactory::~QItemEditorFactory()
Détruit l'usine de l'éditeur d'objets.
[virtual] QWidget *QItemEditorFactory::createEditor(int userType, QWidget *parent) const
Crée un widget d'éditeur avec l'adresse parent donnée pour l'adresse userType spécifiée, et le renvoie sous la forme d'une adresse QWidget.
Voir aussi registerEditor().
[static] const QItemEditorFactory *QItemEditorFactory::defaultFactory()
Renvoie l'éditeur d'éléments par défaut à l'usine.
Voir aussi setDefaultFactory().
void QItemEditorFactory::registerEditor(int userType, QItemEditorCreatorBase *creator)
Enregistre un créateur d'éditeur d'éléments spécifié par creator pour le type de données userType.
Remarque : la fabrique est propriétaire du créateur d'éditeur d'éléments et le détruira si un nouveau créateur du même type est enregistré ultérieurement.
Voir aussi createEditor().
[static] void QItemEditorFactory::setDefaultFactory(QItemEditorFactory *factory)
Définit la fabrique par défaut de l'éditeur d'éléments à l'adresse factory. Les délégués nouveaux et existants utiliseront la nouvelle usine.
Voir aussi defaultFactory().
[virtual] QByteArray QItemEditorFactory::valuePropertyName(int userType) const
Renvoie le nom de la propriété utilisée pour accéder aux données pour l'adresse userType donnée.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.