Seite 1 von 1

QIcon übergeben

Verfasst: 7. Dezember 2008 22:22
von CLRS530
Hallo. Gleich zum Anfang. Die Frage erscheint mir selbst ziemlich Amateurhaft. ich programmiere aber schon seit geraumer Zeit. Ich habe jetzt mit QT mein erstes Projekt angefangen und versuche gerade QIcon's zu übergeben. Zuerst wollte ich z.B. einen QIcon Zeiger als private member in meiner Klasse erzeugen um darauf ein Icon zu speichern. Das geht aber weder als QIcon icon noch als QIcon *icon. Es wird mir ausgegeben ich können es in einer read only structure area nicht benutzten, das Element sei const usw.
Jetzt habe ich versucht es in einem QCache zu speichern.
QCache<QString, QIcon> iconCache;
QIcon *icon = new QIcon(iconProvider->icon(tempFileInfo));
iconCache.insert(QString("/"), icon);
error: passing `const QCache' as `this' argument of `bool QCache::insert(const Key&, T*, int) [with Key = QString, T = QIcon]' discards qualifiers


Entschuldigt diesen strukturlosen und mit wenig wirklichen Informationen gefüllten Post, aber ich habe mittlerweile soviel versucht, dass ich nicht mehr weiß, was ich aufzeigen soll.
Wer weiß wie es funktioniert sollte mir dennoch helfen können. Als Randnotiz ich benutzte den QT Creator der sonst aber bei mir einwandfrei kompiliert, wenn es nicht gerade um QIcon's geht ;).

Verfasst: 7. Dezember 2008 22:32
von upsala
Diese 3 Zeilen stehen aber nicht im Code in einer Funktion hintereinander, oder?

Um von einer Funktion die als const definiert wurde, auf Variablen schreibend zuzugreifen, bietet sich die Möglichkeit mit 'mutable' an.

Verfasst: 7. Dezember 2008 23:05
von CLRS530
Die Erste ist ein member der Klasse. Der Rest ja ;)

Was mich verwunderte war vor allem, dass ich hier und da genau meine Versuche gesehen habe. Die scheinbar funktionieren. z.B. auch in der QDirModel Klasse.

Ich verfolge den Tip mal weiter, danke soweit.