PyQt でQTableModel
使用して表示しているカスタムがあります。QTableView
一部のフィールドをチェック可能に設定しており、[すべてチェック] ボタンと [チェックなし] ボタンを追加したいと考えています。setData()
で既に記述したコードだけでなく、チェック済みの状態も変化するように、コードから を呼び出す方法が必要だと思いますsetData()
。実際にこれを行う方法はありますか?
要求に応じて、私が使用している setData は次のとおりです。
if role == Qt.CheckStateRole:
row = index.row()
column = index.column()
if row == 0 and column != 0:
self._data.parsingConfiguration['columnEnabled'][column-1] = True if value == Qt.Checked else False
self.dataChanged.emit(self.createIndex(1, column), self.createIndex(len(self._data.data),column))
if column-1 == self._data.parsingConfiguration['groupNumberColumn']:
self.setGroupNumber(self.getFirstEnabledMember())
elif column-1 == self._data.parsingConfiguration['timeStepColumn']:
self.setTimeStep(self.getFirstEnabledMember())
self.emit(SIGNAL("layoutChanged()"))
return True
if column == 0 and row != 0:
self._data.parsingConfiguration['rowEnabled'][row-1] = True if value == Qt.Checked else False
self.dataChanged.emit(self.createIndex(row, 1), self.createIndex(row, self._data.numColumns+1))
return True
return False