J'utilise QSqlTableModel *modelcompleter
, puis en utilisant QCompleter
pour charger les données dans le qLineEdit *search
Obtenez champ id comme un entier d'un enregistrement dans QSqlTableModel
connect(ui->btnSearch, SIGNAL(clicked()), SLOT(search()));
modelcompleter->setTable("cust");
modelcompleter->setEditStrategy(QSqlTableModel::OnManualSubmit);
modelcompleter->select();
QCompleter *searchCompleter = new QCompleter(modelcompleter);
searchCompleter->setCompletionColumn(1);
searchCompleter->setCaseSensitivity(Qt::CaseInsensitive);
ui->search->setCompleter(searchCompleter);
J'utilise QLineEdit pour frapper entrer sur le point que je veux choisir:
connect(ui->search, SIGNAL(returnPressed()), SLOT(search()));
la fonction
void search(){
cust_name = ui->search->text();
modelsearch->setTable("cust");
modelsearch->setEditStrategy(QSqlTableModel::OnManualSubmit);
modelsearch->setFilter(QString("cust_name like '%%1%'").arg(cust_name));
modelsearch->select();
qDebug() << modelsearch->record(0).value("id").toInt(); }
Je ne comprends pas pourquoi mais la recherche de modèles qui actuellement met à seulement 1 enregistrement qu'il obtient quand j'appuie sur enter (QCompleter s'assure que je soumets le 'cust_name' complet). sorties QDebug() 0. Y at-il une autre façon d'obtenir le id
du 'cust_name'
qui correspond à la requête de recherche 'cust_name'