qtforum.de Foren-Übersicht

QtWikiNeu: Zum Wiki  Qt-DocsQt-Dokumentation  Qt-PagesAndere Seiten zu Qt   
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Gültigen neuen QModelIndex erzeugen

 
Neues Thema eröffnen   Neue Antwort erstellen    qtforum.de Foren-Übersicht -> Qt Jambi
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Micha



Anmeldedatum: 16.02.2010
Beiträge: 5

BeitragVerfasst am: Fr März 05, 2010 15:34    Titel: Gültigen neuen QModelIndex erzeugen Antworten mit Zitat

ich möchte, das durch einen Klick in eine beliebige Zelle meiner Tabelle jeweils die komplette Zeile ausgewählt wird.
Da vor dem Klick bereits eine Zelle/Zeile ausgewählt sein könnte, will ich einfach in meinem QSelectionModel über die Liste der bereits ausgewählt Zellen gehen und dann in einem neuen QItemSelection-Objekt den Bereich von der ersten bis zu letzten Spalte dieser Zeile setzen.
Diese Selection vermenge ich dann mit der bereits vorhandenen Selection und weiße das Endergebnis wiederum meinem SelectionModel zu.

Um die neue Selection zu erzeugen, benötige ich ein QModelIndex für Start- und Endposition. Diese lassen sich aber leider nicht direkt erzeugen. Ich habe zwar von einer createIndex-Methode in QAbstractModelIndex gelesen, diese scheint aber in Jambi nicht verfügbar zu sein. Ich habe von einem Trick gelesen, dass man aus einem QStandardModel per index()-Methode ein QModelIndex erhalten kann, welcher dann die eigene Zeile und Spalte enthält, leider erhalte ich aber in meiner Umsetzung damit nur ungültige (leere) QModelIndexe.

Wie kann ich denn korrekt einen QModelIndex erzeugen?

Hier mal noch der Quelltext, wie ich ihn bislang geschrieben habe (funktioniert halt noch nicht wie gewünscht):

Code:
private void selectRow()
   {
      List<QModelIndex> selected = new ArrayList<QModelIndex>();
      selected = selectionModel.selectedIndexes();
      QItemSelection completeRowsSelection = new QItemSelection();

      for (QModelIndex index : selected)
      {
         // QModelIndex firstColumn = new QModelIndex(index.row(), 0);

         QItemSelection completeRowSelection = new QItemSelection();

         QModelIndex startPoint = new QStandardItemModel().index(index.row(), 0);
         QModelIndex endPoint = new QStandardItemModel().index(index.row(), model.columnCount());
         completeRowSelection.select(startPoint, endPoint);
         completeRowsSelection.merge(completeRowSelection);
      }
selectionModel.select(completeRowsSelection);

Danke für eure Mühe

Micha
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    qtforum.de Foren-Übersicht -> Qt Jambi Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum