QModelIndex Column festlegen

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

QModelIndex Column festlegen

Beitragvon nieselfriem » Dienstag 28. März 2017, 18:32

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.

  1.     def set_checkbox_clicked(self):
  2.         index = self.dataTBL.selectedIndexes()[0]
  3.         value = None
  4.         model = self.dataTBL.model()
  5.         if self.reBezChbx.isChecked():
  6.             value = True
  7.         else:
  8.             value = False
  9.         model.setDataCheckdata(index, value, QtCore.Qt.EditRole)


  1. def setDataCheckdata(self, index, value, role=QtCore.Qt.EditRole):
  2.         if role == QtCore.Qt.EditRole:
  3.             row = index.row() #vom User ausgewählte Zeile
  4.             column = 2 #Soll nur in der dritten Spalte der Tabelle ausgeführt werden
  5.             data = value
  6.             self._data[row][column] = data
  7.             self.dataChanged.emit(index, index)
  8.             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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder