flags anpassen

Alles rund um die Programmierung mit Qt
Antworten
tamasi
Beiträge: 45
Registriert: 5. Juli 2007 15:49

flags anpassen

Beitrag von tamasi »

Hi,

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;
}
Beide Tabellen arbeiten auf dem Model/View.
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?
Antworten