Qt M/V Deligate

Qt M/V Deligate,qt,model-view-controller,delegates,mv,Qt,Model View Controller,Delegates,Mv,当用户选择QTableView单元格(包含日期时间)时,我想显示QDateTimeWidget。我已写信给代表。如何知道在委托创建编辑器方法中动态使用模型索引的列类型?例如,如果在函数中通过子类化QStyledItemDelegate创建自己的委托 QWidget *DateDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option,

当用户选择
QTableView
单元格(包含日期时间)时,我想显示
QDateTimeWidget
。我已写信给代表。如何知道在委托创建编辑器方法中动态使用模型索引的列类型?

例如,如果在函数中通过子类化
QStyledItemDelegate
创建自己的委托

QWidget *DateDelegate::createEditor(QWidget *parent,
                                const QStyleOptionViewItem &option,
                                const QModelIndex &index) const
您可以使用
索引

因此,您可以使用
index.row()、index.column()
获取行或列。要获取文本(您的日期),您可以执行以下操作:

QString tmpStr =
        index.model()->data(index, Qt::DisplayRole).toString();

祝你好运

您可以检查返回的单元格数据类型。记住index.data(Qt::ItemRole)返回QVariant