加速QComboBox
使用非常大的数据集想要尝试使用QSqlQueryModel
而不是QStandardItemModel
。但是,QComboBox
中的文本数据需要映射到一个ID,该ID通过itemData(rowIndex, Qt::UserRole)
存储和访问。在QSqlQueryModel
查询中会有2列:ID和文本;和QComboBox setModelColumn(1)
被定义,即文本。与QSqlQueryModel一起使用QComboBox
如何正确地进行子类化或重新定义QSqlQueryModel
,如果combobox->itemData(rowIndex, Qt::UserRole)
必须包含ID?谁曾经实施过这样的事情,或者知道某个来源的链接?如果我在一个这样的方式定义QVariant QSqlQueryModel::data(const QModelIndex & item, int role = Qt::DisplayRole)
:
QVariant MySqlModel::data(const QModelIndex &index, int role) const
{
if(role == Qt::UserRole && index.column() == 1)
return QSqlQueryModel::data(this->index(index.row(), 0), Qt::DisplayRole);
return QSqlQueryModel::data(index, role);
}
将它的工作,即是否combobox->itemData(rowIndex, Qt::UserRole)
将包含在这种情况下ID?还是需要调查Qt的来源?