加速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的來源?