Suche in QtableView

Alles rund um die Programmierung mit Qt
galilio
Beiträge: 42
Registriert: 19. November 2013 08:16

Re: Suche in QtableView

Beitrag von galilio »

Hallo alle zusammen,

ich habe folgende Problem:


Ich möchte das View von meine TableView updaten.

Mein vorgehen:
In meine TableView suche ich mir nach einem bestimmten Object: suche--> soweit so gut.
Es funktioniert alles wie es sein muss.

Problem ist: wenn ich zu den normalen View zurückkehre, da bleibt stets das gleiche View (mit der Filterung).

Meine update slot sieht so aus:

Code: Alles auswählen

void MyTable:: updateMyTable()
{
	model-> select(); // DataDelegate *model;
}
Was mache ich den falsch?

Ich auch mit dem QTDesign folgenden Versuch:
wenn ich auf den Button clicke, dann ui->tableView->update()
---> Das hat auch leider nichts geholfen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Suche in QtableView

Beitrag von Christian81 »

Wie gehst Du zurück zum 'normalen' View? Warum überhaupt zwei Views und nicht, wie vorgeschlagen, ein QSortFilterProxyModel immer benutzen und wenn man nichts sucht dann eben keine Such/Filterkriterien?
Etwas sinnvoller Code wäre auch nicht schlecht. MichaelS hat eigentlich alles korrekt geschrieben ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
galilio
Beiträge: 42
Registriert: 19. November 2013 08:16

Re: Suche in QtableView

Beitrag von galilio »

Christian81 hat geschrieben:Wie gehst Du zurück zum 'normalen' View?
Seh bitte Anhang
Christian81 hat geschrieben: Warum überhaupt zwei Views und nicht, wie vorgeschlagen, ein QSortFilterProxyModel immer benutzen und wenn man nichts sucht dann eben keine Such/Filterkriterien?
Etwas sinnvoller Code wäre auch nicht schlecht. MichaelS hat eigentlich alles korrekt geschrieben ...
Wie MichaelS vorgeschlagen hat, tue ich schon.
Ich benutze doch nur einen View (QTableView).

Mit dem andere View meine ich: Der Normalen View ohne Filterung
Dateianhänge
update.png
update.png (2.34 KiB) 5797 mal betrachtet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Suche in QtableView

Beitrag von Christian81 »

Ich verstehe nicht was an 'ein normaler View' und 'ein View mit Filterung' unterschiedlich sein soll. Beides hat ein Model und ein QSortFilterProxyModel. Beim 'normalen View' filtert das ProxyModel nichts weg und gut ist. Bilder helfen da auch nichts...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Re: Suche in QtableView

Beitrag von MichaelS »

Ich verstehe das Problem nicht. Was genau soll passieren, wenn der Schalter 'Update' gedrückt wird?
galilio
Beiträge: 42
Registriert: 19. November 2013 08:16

Re: Suche in QtableView

Beitrag von galilio »

MichaelS hat geschrieben:Ich verstehe das Problem nicht. Was genau soll passieren, wenn der Schalter 'Update' gedrückt wird?
Wenn "Update" gedrückt wird, soll die Tabelle aktualisiert werden.
Das funktioniert.

Problem ist: Wie kehre ich wieder zu der Tabelle (gesamte Tabelle) ohne Filterung.

Danke
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Re: Suche in QtableView

Beitrag von MichaelS »

galilio hat geschrieben:
Wenn "Update" gedrückt wird, soll die Tabelle aktualisiert werden.
Das funktioniert.

Problem ist: Wie kehre ich wieder zu der Tabelle (gesamte Tabelle) ohne Filterung.

Danke
Wenn Du es genauso machst, wie ich es geschrieben hatte, dann aktualisiert sich die Tabelle automatisch, sobald ein Suchbegriff eingegeben wird oder dieser zurückgesetzt wird. Da brauchst Du dann keinen Update-Button.

Um die Aktualisierung der Tabelle kümmert sich allein das QSortFilterProxyModel. Wenn Du dem mit setFixedString einen Suchbegriff übergibst, wird die Tabelle auf die Daten beschränkt, die zum Suchbegriff passen. Wenn Du mit setFixedString( QString() ) einen leeren String übergibst, werden die Daten wieder ungefiltert angezeigt.
galilio
Beiträge: 42
Registriert: 19. November 2013 08:16

Re: Suche in QtableView

Beitrag von galilio »

MichaelS hat geschrieben:
Wenn Du es genauso machst, wie ich es geschrieben hatte, dann aktualisiert sich die Tabelle automatisch, sobald ein Suchbegriff eingegeben wird oder dieser zurückgesetzt wird. Da brauchst Du dann keinen Update-Button.

Um die Aktualisierung der Tabelle kümmert sich allein das QSortFilterProxyModel. Wenn Du dem mit setFixedString einen Suchbegriff übergibst, wird die Tabelle auf die Daten beschränkt, die zum Suchbegriff passen. Wenn Du mit setFixedString( QString() ) einen leeren String übergibst, werden die Daten wieder ungefiltert angezeigt.

Ja das stimmt danke
Antworten