Was funktioniert: Ich kann die TableView bearbeiten.
Was nicht funktioniert:
Wenn ich die Eingabe in einer Zelle beende, ist die TableView leer
und
Neues Hineinladen nützt nichts, da die Änderungen nicht in der DB gespeichert werden.
Code: Alles auswählen
class EditableQuerylModel : public QSqlQueryModel
{
Q_OBJECT
public:
EditableQuerylModel(QObject *parent = nullptr) : QSqlQueryModel(parent) {};
Qt::ItemFlags flags(
const QModelIndex &index) const
{
Qt::ItemFlags flags = QSqlQueryModel::flags(index);
flags |= Qt::ItemIsEditable;
return flags;
}
bool setData(const QModelIndex &index, const QVariant &value, int /* role */)
{
QModelIndex primaryKeyIndex = QSqlQueryModel::index(index.row(), 0);
int id = data(primaryKeyIndex).toInt();
//????????????????????
return //???????????;
};
(Habe natürlich alles Mögliche ausprobiert, erfolglos, deswegen nur der Code, der funktioniert.
Und im Internet findet man immer nur das gleiche (spezielle) Beispiel, in allen möglichen Sprachen, hat mir aber nicht weiter geholfen
)
LG
chri