bonjour
j'ai essaye de créer en vain un vector de *QStandardItem , doit-je faire un héritage sur cette class pour qu'il soit connue de template......???
Version imprimable
bonjour
j'ai essaye de créer en vain un vector de *QStandardItem , doit-je faire un héritage sur cette class pour qu'il soit connue de template......???
Bonsoir,
L'étoile se trouve normalement après le type pour représenter un pointeur:
std::vector<QStandardItem*>
:ptdr: vraiment .....
voila ce qui arrive quand on prend pas de pause :lol:
merci jo_link_noir:P
par contre j'ai une assez curieuse erreur, le compilateur refuse de créer des iterator QStandardItem*, j'ai essaye plein de combinaison (avec l'etoile , sans l’étoile.....) sans résultat
vraiment bizarre 8OCode:__gnu_cxx::__normal_iterator<QStandardItem**, std::vector<QStandardItem*>>
bon, je peut m'en passe, avec les vector je passe généralement par les crochets , mais vue que j'aime pas passe a cote d'un truc que je comprend pas..........
Sans l'erreur complète et la ligne de code fautif, c'est un peu compliquer de deviner... ;)
std::vector<QStandardItem*>::iterator
voila un exemple complet
pour it.text();Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 std::vector<QStandardItem*> vector_cadres; QStandardItem *item ; item = new QStandardItem(); QString txt = "111111"; item->setText(txt); vector_cadres.push_back(item); std::vector<QStandardItem*>::iterator it; for(it = vector_cadres.begin(); it != vector_cadres.end(); it++){ std::cout<<vector_cadres[0]->text().toStdString()<<std::endl; it.text();// pas bon it->text();//pas bon }
Code:
1
2
3 83: erreur : 'std::vector<QStandardItem*>::iterator' has no member named 'text' it.text(); ^
pour it->text();
en débogage avec it.text(); et it->text(); en commentaire ça donneCode:
1
2
3 82: erreur : request for member 'text' in '* it.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator-><QStandardItem**, std::vector<QStandardItem*> >()', which is of pointer type 'QStandardItem*' (maybe you meant to use '->' ?) it->text(); ^
Code:
1
2
3
4 nom: it valeur: <inaccessible> type:__gnu_cxx::__normal_iterator<QStandardItem**, std::vector<QStandardItem*>>
Bonjour,
Code:std::vector<QStandardItem*>::iterator it;
- it est ton iterator
- *it l'élément de type QStandardItem*
Pour utiliser une méthode de QStandardItem donc, il te faut faire :
À noter que la classe QStandardItem possède le constructeur QStandardItem::QStandardItem(const QString & text).Code:(*it)->methode(...);
bravo c'etais bien ça , merci Winjerome ;)