meine Hauptfenster besteht aus zwei Tabellen, abgeleitet aus QAbstractTableModel inkl eigener View+Delegate.
Meine flags-methode schaut folgendrmassen aus:
Code: Alles auswählen
Qt::ItemFlags cTableModel::flags(const QModelIndex &index) const {
int Col;
Col=index.column();
Qt::ItemFlags flags;
if (mpDataTbl->mViType.value(Col)==1) {
flags |=Qt::ItemIsEnabled |Qt::ItemIsSelectable |Qt::ItemIsEditable;
}
else if (mpDataTbl->mViType.value(Col)==2) {
flags |=Qt::ItemIsEnabled |Qt::ItemIsSelectable;
}
return flags;
}In der einen Tabelle werden nur Strings angezeigt, die flags somit auf Enabledund Selectable gesetzt.
In Tabelle 2 sind die ersten beiden spalten String, rest Int.
Mein Problem ist jetzt, in Tabelle zwei sollen nur die Int Werte auswählbar sein.
Lösung 1: Ich erweitere mein Model, inkl Database um einen Typ 3 und setze in cTableModel::flags() spezielle Flags.
Geht es auch anders? Kann ich aus meinem Hauptprogramm irgendwie auf die flags-Methode zugreifen und für diese spezielle Tabelle die erste und zweite Spalte sperren?