Récupérer le n° de ligne QTableWidget avec une QCheckBox intégré

Bonjour,

Débutant voir même, extrêmement novice avec Python, je viens de réussir à créer et alimenter via une BDD une QTableWidget.

Certes, mon code est certainement loin d’être parfait mais pour le moment, il fonctionne plus ou moins.

Pour des raisons d’esthétisme, j’utilise une feuille de style CSS qui, ajoute une image lors de la coche des QCheckBox.

Si je vous parle de ça ! C’est tout simplement parce que j’ajoute à la QTableWidget, l’objet QCheckBox avec un appel de fonction lors du clique sur celle-ci.

L’appel de la fonction lors du clique fonctionne correctement, cependant, pour les besoins de mon utilisation, je n’arrive pas à récupérer le n° de la ligne où est située la QCheckBox qui vient d’être cochée.

Je vous note ci-dessous le code pour que cela soit le plus compréhensible pour vous.

       # boucle de lecture de la requête
        try:
            while self.query.next():
                # widget checkbox
                checkbox_widget = QWidget()
                checkbox_widget.setStyleSheet('background-color: transparent;')

                layout_cb = QtWidgets.QHBoxLayout(checkbox_widget)
                self.table_ep_cb = QtWidgets.QCheckBox()
                layout_cb.addWidget(self.table_ep_cb)
                layout_cb.setAlignment(Qt.AlignmentFlag.AlignCenter)
                layout_cb.setContentsMargins(0, 0, 0, 0)
                checkbox_widget.setLayout(layout_cb)

                tablerow = self.table_ep.rowCount()

                self.table_ep.insertRow(tablerow)

                self.table_ep.setItem(tablerow, 0, QtWidgets.QTableWidgetItem((self.query.value('col1'))))
                self.table_ep.setItem(tablerow, 1, QtWidgets.QTableWidgetItem((self.query.value('col2'))))
                self.table_ep.setItem(tablerow, 2, QtWidgets.QTableWidgetItem((self.query.value('col3'))))
                self.table_ep.setItem(tablerow, 3, QtWidgets.QTableWidgetItem((str(self.query.value('col4')))))
                self.table_ep.setItem(tablerow, 4, QtWidgets.QTableWidgetItem((str(self.query.value('col5')))))
                self.table_ep.setItem(tablerow, 5, QtWidgets.QTableWidgetItem((str(self.query.value('col6')))))
                self.table_ep.setItem(tablerow, 6, QtWidgets.QTableWidgetItem((self.query.value('col7'))))
                self.table_ep.setItem(tablerow, 7, QtWidgets.QTableWidgetItem((str(self.query.value('col8')))))
                self.table_ep.setItem(tablerow, 8, QtWidgets.QTableWidgetItem((str(self.query.value('col9')))))
                self.table_ep.setCellWidget(tablerow, 9, checkbox_widget)

                self.table_ep.resizeRowsToContents()

                self.table_ep_cb.stateChanged.connect(self._itemClicked)

        except self.query.lastError() as error:
            print("Erreur de chargement de la requête SQL", error)

        self.query.finish()

La fonction (simple pour le moment):

        row = self.table_ep.currentRow()
        print(row)

Vous remerciant à tous d’avance pour votre aide.

Bonsoir.

Peux-tu fournir un code minimal “presque fonctionnel” ?

Je ne connais pas Qt, mais tu ne peux pas fournir des arguments lors de l’appel ? ou fournir plus d’informations dans l’item lui-même ?