QIcon übergeben

Alles rund um die Programmierung mit Qt
Antworten
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

QIcon übergeben

Beitrag 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 ;).
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag 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.
Antworten