2017-07-07 2 views
0

J'ai le pointeur QListWidget (pListWidget). A mon widget personnalisé (QCustomItem), inerte depuis QWidget et contenant des données. J'ajoutant quelques widgets dans la liste:Comment prendre mon widget dans QListWidget, en utilisant le signal currentItemChanged?

int iMyData = 555; 
... 
QListWidgetItem *pListWidgetItem = new QListWidgetItem(); 
QCustomItem *pCustomWidget = new QCustomItem(iMyData); 
pListWidget->addItem(pListWidgetItem); 
pListWidget->setItemWidget(pListWidgetItem, pCustomWidget); 
... 

Cette partie du code peut être dans le cycle (en ajoutant quelques widgets).

Aussi je détecter le changement par élément connexion:

connect(pListWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this, SLOT(slotItemChanged(QListWidgetItem*,QListWidgetItem*))); 

et la réalisation de la fente:

void QSomeForm::slotItemChanged(QListWidgetItem* pCurrent, QListWidgetItem* pPrevious) 
{ 
    QCustomItem *pCustomWidget = // And this is my question: how to take my custom widget in this block code using pListWidget and pCurrent? 

    // Processing pCustomWidget 
    int iMyData = pCustomWidget->iMyData(); // In current example I want to see 555 here 
} 

Comment puis-je extraire mon widget dans QListWidget? Merci! J'espère sur ton aide!

Répondre

0

Lire le doc. Si vous avez trouvé QListWidget::setItemWidget() vous pouvez trouver:

QWidget * QListWidget::itemWidget(QListWidgetItem * item) const 
+0

Désolé pour cette question stupide! Grand merci! Ça marche!! – Jarex