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 :
En cliquant sur le premier QComboBox la liste du deuxième QComboBox se change mais dans un ordre qui me semble quelconque.
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 #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)
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.
Partager