Bonjour à tous,

J'ai actuellement un petit souci avec la classe QSqlRelation. Je vous donne le code récalcitrant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
    m_model = new QSqlRelationalTableModel(this);
    m_model->setTable("personne_physique");
    m_model->setFilter("id=1"); 
 
    //m_model->setRelation(m_model->fieldIndex("civilite_id"),
    //                     QSqlRelation("civilite", "id", "libelle")
    //                    );
 
    //int civilite_id = m_model->fieldIndex("civilite_id");
    //QSqlTableModel *rel = m_model->relationModel(civilite_id);
    //ui.civilite->setModel(rel);
    //ui.civilite->setModelColumn(rel->fieldIndex("libelle"));
 
    m_model->select();
 
    mapper = new QDataWidgetMapper(this);
    mapper->setModel(m_model);
 
    //mapper->setItemDelegate(new QSqlRelationalDelegate(this));
    //mapper->addMapping(ui.civilite, civilite_id);
 
    mapper->addMapping(ui.nom, m_model->fieldIndex("nom"));
    mapper->addMapping(ui.prenom, m_model->fieldIndex("prenom"));
    mapper->addMapping(ui.rue, m_model->fieldIndex("rue"));
 
    mapper->toFirst();
 
 
}
Dans la version avec les commentaires, il fonctionne

Si on décommente, ça ne fonctionne pas. Je récupère bien un enregistrement mais les valeurs ne sont copiées dans l'interface

J'ai l'impression d'avoir suivi correctement le tutoriel, mais bon... j'ai du loupé quelquechose.

Vous avez une idée ?

Merci,

Jean-Michel