Lien entre deux QComboBox
Bonjour,
J'ai beau chercher dans le net mais je n'ai pas trouvé de solution claire pour mon problème qui se résume ainsi:
J'ai deux tables QSQLITE l'une Domaine qui a deux champs DomId et DomLib et l'autre table Activite qui a trois champs DomId, ActivId et ActivLib.
DomId |
DomLib |
1 |
Gestion |
2 |
Technique |
DomId |
ActivId |
ActivLib |
1 |
1 |
Administration |
1 |
2 |
Audit |
2 |
1 |
Automatisme |
2 |
2 |
Mecanique |
J'essaye depuis plusieurs jours de faire un lien entre les deux tables en utilisant deux QComboBox qui par le choix d'un domaine il m'affiche dans l'autre QComboBox les activités liées à ce domaine.
Voici mon code pour l'affichage des deux tables en utilisant QSqlRelationalTableModel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #Affichage des Domaines dans un comboBox comboBoxDomaineAdm
self.listedomaineAdmmodel = QSqlRelationalTableModel(self)
self.listedomaineAdmmodel.setTable('Domaine')
self.listedomaineAdmmodel.select()
self.ui.comboBoxDomaineAdm.setModel(self.listedomaineAdmmodel)
self.ui.comboBoxDomaineAdm.setModelColumn(self.listedomaineAdmmodel.fieldIndex('DomaineLibelle'))
self.ui.comboBoxDomaineAdm.currentIndexChanged.connect(self.ui.comboBoxActiviteAdm.setCurrentIndex)
#Affichage des Activités dans un comboBox comboBoxActiviteAdm
self.listeActiviteAdmmodel = QSqlRelationalTableModel(self)
self.listeActiviteAdmmodel.setTable('Activites')
self.listeActiviteAdmmodel.select()
self.ui.comboBoxActiviteAdm.setModel(self.listeActiviteAdmmodel)
self.ui.comboBoxActiviteAdm.setModelColumn(self.listeActiviteAdmmodel.fieldIndex('ActiviteLibelle'))
self.ui.comboBoxActiviteAdm.currentIndexChanged.connect(self.ui.comboBoxThemes.setCurrentIndex) |
En cliquant sur le premier QComboBox la liste du deuxième QComboBox se change mais dans un ordre qui me semble quelconque.
Ma question est : Comment puis je lier mes deux QComboBox par l'identifiant du domaine (DomId) et non pas par l'index du QComboBox.
Merci pour votre réponse.