Seite 1 von 1

setHeaderData und QDirModel

Verfasst: 26. März 2008 11:53
von wipiku
Hallo,

ich versuche schon einen ganze Weile den Header des QDirModels zu verändern. Lt. Doku und dem Forum funktioniert das über:

setHeaderData( int section, Qt::Orientation orientation, const QVariant & value, int role = Qt::EditRole )

Also dachte ich, ich versuche es einfach mal mit:

Code: Alles auswählen

QDirModel *dirModel = new QDirModel;
dirModel->setHeaderData(0, Qt::Horizontal, "Test", Qt::DisplayRole);
Nur dummerweise ändert sich am Header nichts, wenn ich mir das Ganze in einer QTreeView anzeigen lasse.

Da es bei einem selbst erstellten Model funktioniert:

Code: Alles auswählen

QStandardItemModel *model = new QStandardItemModel (1,2);
model->setHeaderData(0, Qt::Horizontal, "Test1", Qt::DisplayRole);
model->setHeaderData(1, Qt::Horizontal, "Test2", Qt::DisplayRole);
bin ich etwas ratlos.


Vielleicht kann mir einer von Euch auf die Sprünge helfen.

Verfasst: 26. März 2008 12:27
von upsala
Wo steht das in der Doku von QDirModel? Laut Doku wird auch setHeaderData im QDirModel nicht reimplementiert, also denke ich, daß es recht unwahrscheinlich, ist, daß das bei QDirModel geht.

Verfasst: 26. März 2008 12:42
von wipiku
Ich war bei "List of All Members for QDirModel" und habe da "setHeaderData" gelesen.

Ist das Gewünschte nicht anderweitig umsetztbar, ohne mir etwas komplett eigenes basteln zu müssen?

Verfasst: 26. März 2008 16:57
von upsala
Aber sicher doch. headerData() ist immer nocht virtuell

Verfasst: 27. März 2008 06:49
von wipiku
Danke für die Antwort.

Mit headerData() habe ich auch schon herum experimentiert, ohne sichtbaren Erfolg.

Auch auf die Gefahr hin, gleich als völlig Unwissender gebrandmarkt zu werden, frage ich einfach mal, wie ich mit headerData() den Header verändert bekomme.

Lt. Doku bekomme ich doch nur etwas.
Returns the data stored under the given role for the specified section of the header with the given orientation
Das Auslesen habe ich ohne Probleme hinbekommen, aber wie verändere ich ihn damit?

Verfasst: 27. März 2008 09:10
von upsala
Mit setHeaderData z.B. Der ist ja auch noch virtuell.

Verfasst: 27. März 2008 10:23
von wipiku
Sorry, aber das mit dem "virtual" habe ich trotz intensiver Recherchen in der Vergangenheit leider immer noch nicht verstanden (kam bis jetzt immer ohne aus).

Ich weiß, es hat nichts speziell mit Qt zu tun.

Dennoch bitte ich um einen kleinen Schubs in die richtige Richtung, da ich keine Ahnung habe, wie ich die virtuelle Eigenschaft ausnutzen, sprich wie gewünscht überschreiben, kann.

Verfasst: 27. März 2008 11:02
von franzf
wipiku hat geschrieben:Dennoch bitte ich um einen kleinen Schubs in die richtige Richtung, da ich keine Ahnung habe, wie ich die virtuelle Eigenschaft ausnutzen, sprich wie gewünscht überschreiben, kann.
Polymorphie.
Schnell gefundener Link:
http://www.willemer.de/informatik/cpp/cppvirt.htm

Verfasst: 27. März 2008 14:08
von wipiku
franzf:

Danke für den Link.

Wenn ich das richtig verstanden habe, bräuchte ich für mein Problem aber in QDirModel weiterhin setHeaderData, was dann die setHeaderData von QAbstractItemModel übeschreiben würde.

Tut mir leid, aber wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht.