Seite 1 von 1

TableView und insertRow

Verfasst: 3. November 2007 15:48
von smoeller
Hallo,

ich versuche mich schon eine ganze Weile an einem Problem.

In meinem Programm kann ich mittels Button eine neue Row in mein TableModel einfügen. Jetzt möchte ich gerne das die neu eingefügte Zeile auch gleich in meiner TableView selektiert ist. Um die Sache noch etwas interessanter zu gestalten habe ich auch noch ein SortFilterProxyModel davor geschaltet um den Sort in der TableView zu erledigen.

Folgende Versuche sind bislang leider ohne gewünschten Erfolg geblieben:

Code: Alles auswählen

tableView->setSortingEnabled(false);
		
myModel->insertRow(0,QModelIndex());
tableView->setCurrentIndex(myModel->index(0,0));
tableView->selectRow(0);

tableView->setSortingEnabled(true);
Hat von euch jemand einen guten Tipp?

Verfasst: 3. November 2007 17:38
von upsala
Und warum fügst du nicht in das Orginal-Model ein? QSortFilterProxyModel zeigt es dann schon wieder richtig an.

Verfasst: 3. November 2007 17:44
von smoeller
Das mache ich ja. Mein Problem ist ja nicht das die Row die ich einfüge nicht angezeigt wird.
Ich kämpfe mit dem Problem das die Selection nicht auf dem eingefügten item bleibt bzw. wenn der Sort wieder aktiviert wird bleibt das erste Item selektiert und nicht das eingefügte. Ich suche das Verhalten wie beim klick auf den Header. Wenn man vorher ein Item selektiert hat und die Sort-Order oder Column ändert bleibt das Item weiterhin selektiert.

Verfasst: 3. November 2007 17:59
von Undefined
Ganz einfach weil bei einem INSERT alle Tabellen neu eingelesenen werden. Setze einen Merker auf die letzte Selektion und nach enableSorting() ein SIGNAL mit diesen INDEX absetzen. Anders wird das keinen geben ;)