2009-07-06 11 views
0

Ich schreibe ein kleines Datenbankprojekt zur Bearbeitung von Lohn- und Gehaltsabrechnungen. Diese Gehaltsabrechnungsdatensätze werden zur Anzeige in ein Tableview-Objekt eingefügt. Wie kann ich einen bestimmten Datensatz in einem TableView durchsuchen? Irgendeine Idee, bitte hilf mir.TableView Suche

Antwort

2

Wenn Sie das Model/View-Paradigma verwenden, können Sie eine "match()" -Methode verwenden, die sich in der QAbstractItemModel-Klasse befindet. Zum Beispiel finden Sie in diesem Code-Schnipsel:

model->match(model->index(0,0), 
      Qt::DisplayRole, 
      pattern, -1, 
      Qt::MatchContains | Qt::MatchRecursive); 

Dies ist ein Code ist, verwende ich eine Musterzeichenfolge in der Strukturansicht zu lokalisieren. Die Flags werden gesetzt, um jene Datensätze zu finden, die ein "Muster" unter ihrer Anzeige-Rollendarstellung haben, die Suche wird rekursiv durch den Baum durchgeführt (Sie brauchen es in Ihrer TableView nicht, glaube ich :)).

0

A Das Proxy-Modell kann zwischen Ihr (Quell-) Modell und die Ansicht (en) eingefügt werden, um die Modelldaten zu filtern. Werfen Sie einen Blick auf QSortFilterProxyModel, die Modelle Zeilen/Spalten zu sortieren erlaubt. Wenn es den richtigen Regexp für den Schlüssel erhält, wird nur ein Eintrag gefunden, wenn er gefunden wird. Sie können das Proxy-Modell wie ein gewöhnliches Modell verwenden (z. B. rowCount überprüfen), damit es automatisch aktualisiert wird und in anderen Ansichten verwendet werden kann.