Estoy "perpetrando" una BBDD en mis ratos libres. El programa que la maneja accede en varios puntos del programa y con diálogos diferentes a cuadros idénticos. Por ejemplo, tengo unos QLineEdit donde están los datos de las personas, los cuales tienen están rellenos con los datos actuales para que funcione el autocompletado:
Algo como esto: (para QLineEdit)
Código C++:
Ver original
QStringList *ListaValores = new QStringList(); QString cadenaConsulta = "SELECT DISTINCT "+campo[i]+" FROM socios order by "+campo[i]; consulta.exec(cadenaConsulta); while(consulta.next()) { *ListaValores << consulta.value(0).toStringList(); } completer = new QCompleter(*ListaValores); completer->setCaseSensitivity(Qt::CaseInsensitive); editor[i]->setCompleter(completer);
O esto (Para QComboBox):
Código C++:
Ver original
QSqlQueryModel* modelZonas = new QSqlQueryModel(); QSqlQuery *consulta = new QSqlQuery ("SELECT zona FROM zonas ORDER BY id"); modelZonas->setQuery(*consulta); comboZona->setModel(modelZonas);
La idea sería que esos mismos widgets aparecieran en otros diálogos, de forma que ya estarían rellenos y no tendría que volver a hacer la operación.
Confieso que cuando pensé en la idea me la imaginaba sencilla y sin ninguna complicación, y llevo unas cuantas horas y no doy con la tecla.
Saludos y gracias, como siempre!