Seite 1 von 1

Zeilenauswahl in TableView

Verfasst: 23. Juli 2007 09:10
von tamasi
Hi,

sehe wohl gerade den Wald vor lauter Bäumen nicht.

Ich habe mir ein eigens ModelView Model gebastelt inkl Datenbank->myModel->myView und Delegate.

my Model=QAbstractTableModel
myView= QTableView

Das ganze funktioniert wunderbar, nur möchte ich, dass in meiner so erstellten Tabelle die erste Zeile per default aktiviert ist.
Mit selectRow ist sie irgendwie so halb aktiviert, dunkelgrau hinterlegt, sie soll aber blau erscheinen, als wenn man mit der Maus geklickt hat.

Ich denke wahrscheinlich wieder viel zu kompliziert, habe es mit überschreiben von index, setcurrentindex usw probiert. Bleibt trotzdem nur dunkelgrau:(.
Bisher schaut es so aus, wobei w2cTVTop meine Tabelle ist.

Code: Alles auswählen

QModelIndex index=w2cTVTop->index(0,0);
        w2cTVTop->selectionModel()->select(index, QItemSelectionModel::Rows);
        w2cTVTop->setCurrentIndex(index);
Ich hoffe, es kann mir wer helfen.

Verfasst: 24. Juli 2007 13:21
von tamasi
hmmm, geht das grundsätzlich nicht oder ist die lösung so trivial das sich keiner dazu äußern möchte?

Verfasst: 24. Juli 2007 13:30
von FloGrobosch
Könnte mit

Code: Alles auswählen

myView->setSelection(visualRect(currentModelIndex),QItemSelectionModel::Select);
gehen...

Verfasst: 24. Juli 2007 15:38
von tamasi
hmmm, wirklich funktioniert hat es nicht.

Musste in mytableview die setSelection Funktion überschreiben(ist ja protected) aber erbrachte dann trotzdem nur die graue Auswahl.
Egal ob ich Rows oder Current oder sonstwas als Flag benutzt habe.

Verfasst: 25. Juli 2007 09:46
von NoobSaibot
also ich arbeite eher mit

Code: Alles auswählen

myView->selectionModel()->select( const QModelIndex&, QItemSelectionModel::SelectionFlags );
was auch wunderbar funktioniert