0

を使用してファイルとフォルダーをアイテムとして設定する QTableView がありますが、テーブルビューにはフォルダー名だけが表示されるだけでなく、フォルダー内のファイルの属性も表示されるため、QAbstractTableModel使用しませんでした。QFileSystemModel

したがって、私の質問は、バリデーターを追加する方法、DisplayRoleまたは誰かがフォルダー名を編集しようとしEditRoleた場合、モデルがデータをロードして表示する場合、フォルダー名を特殊文字でマークするか、フォルダー名を予想以上の文字でマークする必要があるかどうかです。フォルダ名を含むセルは赤い背景になるはずです。

私は例外を発生させるバリデーターを追加してみましたので、問題がなければ例外がBackgroundColorRole返さQVariantれますQtCore.Qt.red

4

1 に答える 1

0

たぶんこれが役立ちます:

class YourModel(QtCore.QAbstractTableModel):
    def setData(self, index, value, role):
        # VALIDATE HERE
        if index.column() == 0:
            return False
        if value == 'Some word' or value == '':
            return False
        # END VALIDATE HERE
        if index.isValid() and role == QtCore.Qt.EditRole:
            self.cached[index.row()][index.column()] = QtCore.QVariant(value)
            self.emit(QtCore.SIGNAL("dataChanged(QModelIndex, QModelIndex)"), index, index)
            return True
        else:
            return False
于 2015-12-15T20:47:54.353 に答える