我在哪里必须放置数据适应逻辑,代表级别或模型级别?
使用数据自适应逻辑我的意思是在检索和记录时必须转换数据。例如,在 sqlite 中,date
类型不存在,QSqlTableModel
将日期检索为字符串(但它们是日期,只是这不会反映在列类型),从而使QStyledItemDelegate
在编辑时显示QLineEdit
。
要将其编辑为日期,您可以执行以下两项操作:
安装自定义委托,将QVariant
字符串转换为QVariant
日期,并创建QDateEdit
(以及保存版本时的反向转换)。
派生QSqlTableModel
为相应的列执行相同的转换,而无需安装任何自定义委托(QStyledItemDelegate
将识别QVariant
日期类型并显示自动QDateEdit
。
我必须做什么,或者在Qt中做什么是“标准”或通常的方式?
利弊:
headerData
和data
方法。