Bonjour,
J'ai 2 tables nommées personne et ville et une interface comprenant un Qtcombobox et un QtLineEdit. La table personne comprend une foreign key idVille et la table ville comprend les champs idville, nomVille et nomPays. La QtCombobox contient le nom de la ville. Mon problème est que je n'arrive pas à mapper pour afficher le nom du pays dans le QtlineEdit à partir de la valeur du QtCombobox. Le nom de la ville s'affiche correctement dans le QtCombobox. Merci par avance
Je cherche à reproduire l'exemple http://doc.qt.io/qt-4.8/qt-sql-sqlwi...r-example.html.
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 class PersonneModel(QtSql.QSqlRelationalTableModel): def __init__(self, main_window): super(PersonneModel, self).__init__(main_window) self.main_window = main_window self.setTable("personne") self.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit) self.ville_index = self.fieldIndex("idVille") self.setRelation(self.itinerant_index, QtSql.QSqlRelation("ville", "idVille", "NomPays")) self.select() self.ville_rel_model = villeModel(self.main_window) self.ville_rel_model = self.relationModel(self.ville_index)Fonction permettant d'afficher les vues à partir des models.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class VilleModel(QtSql.QSqlTableModel): def __init__(self, main_window): """ :return: Objet model VilleModel """ super(VilleModel, self).__init__(main_window) #
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def set_model_view(self): personne= PersonneModel(self) self.ui.combo_box_edition_worker_body_worker.setModel(personne.ville_rel_model) self.ui.combo_box_edition_worker_body_worker.setModelColumn(personne.ville_rel_model.fieldIndex("nomVille")) mapper = QtGui.QDataWidgetMapper(self) mapper.setModel(personne.ville_rel_model) mapper.setItemDelegate(QtSql.QSqlRelationalDelegate(self)) mapper.addMapping(self.ui.line_edit_edition_worker_body_ve, personne.ville_rel_model.fieldIndex("nomPays")) mapper.addMapping(self.ui.combo_box_edition_worker_body_worker, personne.ville_index)
Partager