Bonjour,

J'utilise deux QTableView l'un affiche les clients et l'autre affiche les informations détaillées pour chaque clients par l'intermédiaire de la fonction setfilterphases
Pour le moment, il n'y a pas de problème chaque enregistrement sélectionné dans le premier tableau, le second affiche ces données.

Ce que demande, c'est comment afficher les informations détaillées pour chaque clients dans une list [] comme ceci : (111111, 222222, 333333, '2018-12') à partir du QSqlRelationalTableModel du deuxième QTableView.
Autrement dit, adapter le code python ci-dessous en PyQt :

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
 
c.execute("SELECT phase1, phase2, phase3, date FROM tmp1 WHERE reference=id")
data = c.fetchall()
 
phase1     = []
phase2     = []
phase3     = []
date = []
 
print(data)
 
for row in data:
    print(row)
    phase1.append(row[0])
    phase2.append(row[1])
    phase3.append(row[2])
    date.append(row[3])


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 #Liste Clients
 
        self.modellistemenu = QSqlRelationalTableModel(self)
        self.modellistemenu.setTable("clients")
        self.modellistemenu.setEditStrategy(QSqlRelationalTableModel.OnManualSubmit)
        self.modellistemenu.select()
        self.modellistemenu.setSort(0, Qt.AscendingOrder)
        self.ui.tableViewmenu.setSortingEnabled(False)
        self.ui.tableViewmenu.resizeColumnsToContents()
        self.ui.tableViewmenu.setModel(self.modellistemenu)
        self.ui.tableViewmenu.selectionModel().currentRowChanged
        self.modellistemenu.setRelation(0,QSqlRelation('tmp1', 'reference', ' '))

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
   #Affichage Phases
 
        self.modellistetmp1 = QSqlRelationalTableModel(self)
        self.modellistetmp1.setTable("tmp1")
        self.modellistetmp1.setEditStrategy(QSqlRelationalTableModel.OnManualSubmit)
        self.modellistetmp1.select()
        self.modellistetmp1.setSort(0, Qt.AscendingOrder)
        self.ui.tableViewrelevephases.setSortingEnabled(True)
        self.ui.tableViewrelevephases.resizeColumnsToContents()
        self.ui.tableViewrelevephases.setModel(self.modellistetmp1)
 
        self.ui.tableViewmenu.clicked.connect(self.setfilterphases)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    def setfilterphases(self, index):
        reference=self.modellistemenu.data(self.modellistemenu.index(index.row(),0, QModelIndex()))
        self.modellistetmp1.setFilter("reference = {}".format(reference))
        self.ui.tableViewrelevephases.setModel(self.modellistetmp1)
Merci