Quantcast
Channel: AFPy's Planet
Viewing all articles
Browse latest Browse all 3409

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

$
0
0

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.

3 messages - 3 participant(e)s

Lire le sujet en entier


Viewing all articles
Browse latest Browse all 3409

Trending Articles