QModelIndex Column festlegen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Hallo,

ich habe eine tabelle mit einer Spalte in der die Booleanwerte als Checkbox dargestellt werden. Dazu habe ich parallel quasi die gleiche Checkbox als GUI-Element. Nun soll es so sein, wenn ich die GUI-Checkbox verändere, dass es sich auch in der ausgewählten zeile und der entsprechenden Spalte die Checkbox verändert.

Leider ist es bisher so, wenn ich die Zeile anwähle auch die zufällig ausgewähle Spalte mit auswähle und wenn ich dann die Checkbox aus der GUI anwähle sich der Wert für die zufällig falsch ausgewälte Spalte auf TRUE oder False ändert. Nun wollte ich es so machen, dass ich die Zeile als Indx übergebe und dann in der Funktion im Tabellenmodell die Spalte dann festlege. Wenn ich das mache, reagiert die Tabelle leider garnicht.

Code: Alles auswählen

    def set_checkbox_clicked(self):
        index = self.dataTBL.selectedIndexes()[0]
        value = None
        model = self.dataTBL.model()
        if self.reBezChbx.isChecked():
            value = True
        else:
            value = False
        model.setDataCheckdata(index, value, QtCore.Qt.EditRole)

Code: Alles auswählen

def setDataCheckdata(self, index, value, role=QtCore.Qt.EditRole):
        if role == QtCore.Qt.EditRole:
            row = index.row() #vom User ausgewählte Zeile
            column = 2 #Soll nur in der dritten Spalte der Tabelle ausgeführt werden
            data = value
            self._data[row][column] = data
            self.dataChanged.emit(index, index)
            return True
Wie kann ich die Spalte festlegen für die obige Funktion set_checkbox_clicked und die Zeilenauswahl eben nach userauswahl übernehmen?

VG niesel
Antworten