QItemEditorFactory Class
QItemEditorFactory 类为在视图和委托中编辑项目数据提供了部件。更多
Header: | #include <QItemEditorFactory> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
公共函数
QItemEditorFactory() | |
virtual | ~QItemEditorFactory() |
virtual QWidget * | createEditor(int userType, QWidget *parent) const |
void | registerEditor(int userType, QItemEditorCreatorBase *creator) |
virtual QByteArray | valuePropertyName(int userType) const |
静态公共成员
const QItemEditorFactory * | defaultFactory() |
void | setDefaultFactory(QItemEditorFactory *factory) |
详细说明
在项目视图中编辑数据时,编辑器由委托创建和显示。QStyledItemDelegate在 Qt 的项目视图中默认安装的委托是 QItemEditorFactory,它使用 QItemEditorFactory 为其创建编辑器。所有项目委托都使用 QItemEditorFactory 提供的默认唯一实例。如果使用setDefaultFactory() 设置一个新的默认工厂,现有和新的委托都将使用新工厂。
工厂保存着QItemEditorCreatorBase 实例的集合,这些实例是专门的编辑器,可为一种特定的QVariant 数据类型生成编辑器(所有 Qt XML 模型都以QVariants 为单位存储数据)。
标准编辑部件
标准工厂实现为各种数据类型提供编辑器。每当代表需要为模型提供的数据提供编辑器时,就会创建这些编辑器。下表显示了类型与所提供的标准编辑器之间的关系。
类型 | 编辑器 小工具 |
---|---|
布尔 | QComboBox |
双 | QDoubleSpinBox |
int | QSpinBox |
无符号 int | |
QDate | QDateEdit |
QDateTime | QDateTimeEdit |
QPixmap | QLabel |
QString | QLineEdit |
QTime | QTimeEdit |
可使用registerEditor() 函数注册其他编辑器。
另请参阅 QStyledItemDelegate 和模型/视图编程。
成员函数文档
QItemEditorFactory::QItemEditorFactory()
构建一个新的项目编辑器工厂。
[virtual noexcept]
QItemEditorFactory::~QItemEditorFactory()
销毁物品编辑器工厂。
[virtual]
QWidget *QItemEditorFactory::createEditor(int userType, QWidget *parent) const
使用给定的parent 为指定的userType 数据创建编辑器部件,并以QWidget 的形式返回。
另请参阅 registerEditor()。
[static]
const QItemEditorFactory *QItemEditorFactory::defaultFactory()
返回默认的项目编辑器工厂。
另请参阅 setDefaultFactory()。
void QItemEditorFactory::registerEditor(int userType, QItemEditorCreatorBase *creator)
为给定的userType 数据注册由creator 指定的项目编辑器创建器。
注意:工厂拥有项目编辑器创建器的所有权,如果以后注册了同一类型的新创建器,工厂将销毁该创建器。
另请参阅 createEditor().
[static]
void QItemEditorFactory::setDefaultFactory(QItemEditorFactory *factory)
将默认的项目编辑器工厂设置为给定的factory 。新委托和现有委托都将使用新工厂。
另请参阅 defaultFactory()。
[virtual]
QByteArray QItemEditorFactory::valuePropertyName(int userType) const
返回用于访问给定userType 数据的属性名称。
© 2025 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.