Bonjour,

Maintenant que mon glisser/déposer fonctionne je rencontre un problème de conversion de type.

J'ai :
  • Une QListView dont le modèle représente une liste de pointeurs d'élèves (QList<Eleve*>).
  • Une QTableView dont le modèle représente une liste contenant une liste de pointeurs de classes (QList<QList<Classe*> >). L'index de la première dimension correspond à un jour de la semaine et l'index de la deuxième dimension à un horaire. Ces jours et horaires sont définis à l'aide de deux énumérations.


Mon objectif est de faire glisser un élève (depuis la liste des élèves) et de le déposer sur une classe (dans le tableau représentant l'emploi du temps) pour ajouter cet élève à la classe.

Le problème est que la méthode setData du modele du QTableView reçoit en paramètre une référence constante sur un QVariant.
Le contenu de ce paramètre devrait être un pointeur vers un objet de type Eleve (sauf si j'ai mal compris le principe), pourtant je ne parviens pas à convertir le paramètre en type Eleve* :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool ModelEmploiDuTemps::setData(const QModelIndex &index, const QVariant &value, int role)
{
	if (true == index.isValid() )
	{
		//liste[index.column()].replace(index.row(), value.toString() );
		QMessageBox message;
		Eleve *eleve = reinterpret_cast<Eleve*>(value);
		eleve->getNomPrenom();
		message.setText("Test");
		message.exec();
 
		//emit dataChanged(index, index);
	}
 
	return true;
}
Je n'arrive pas à savoir si je me trompe sur le 'type réel' du QVariant ou si je n'utilise pas le bon système de conversion.

Merci d'avance pour votre aide et bonne journée.

[EDIT] Alors l'erreur vient du fait que je me suis trompé sur le contenu du QVariant ce n'est pas mon pointeur vers un objet Eleve mais le QString contenant la chaîne affichée dans la QListView.
Je dois être capable de retrouver le pointeur en modifiant ma classe Liste<Eleve> mais j'aimerais savoir s'il est possible de faire en sorte que ce soit le contenu du model qui soit pris pour le D&D et non l'affichage.
Donc savez dans qu'elle méthode le contenu du QVariant est définit ?