Bonjour,

J'ai un léger problème que j'ai tenté de résumer dans le titre. Que le titre ne vous rebute pas: je vais vous expliquer ce problème aussi clairement que possible.

J'ai créé diverses structures pour gérer des playlists. La première concerne les morceaux de musique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
typedef struct{
    quint32 id;
    QString path;
    QString name;
    QString artist;
    QString album;
    qint64 length;
} TrackInfo;
La deuxième concerne l'en-tête des playlists:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct{
    quint8 id;
    QString path;
    QString name;
} PlaylistHeader;
La dernière concerne les playlists dans leur totalité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
typedef struct{
    PlaylistHeader h; //en-tête
    QList<TrackInfo> c; //contenu
} Playlist;
Dans mon programme, pour gérer toutes mes playlists, j'ai déclaré le pointeur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
QList<Playlist>* playlists = new QList<Playlist>;
Pour ajouter un morceau de musique à la première playlist de ce pointeur, je dois alors écrire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
TrackInfo newTrack;
 
//Je définis chacun des éléments de newTrack
 
playlists->at(0).c.append(newTrack);
Hélas! ça ne marche pas: lorsque je lance la compilation, le compilateur finit à chaque fois par me gronder avec le message suivant:
Citation Envoyé par l'affreux compilateur rétif
passing 'const QList<TrackInfo>' as 'this' argument of 'void QList<T>::append(const T&) [with T = TrackInfo]' discards qualifiers.
Je ne comprends guère ce message d'erreur et ne vois absolument pas d'où peut provenir la dite erreur. Un peu d'aide ne serait pas de refus.

Merci d'avance.

Adishatz!