2017-07-07 1188 views
0

我有QListWidget指針(pListWidget)。 A有我的自定義(QCustomItem)小部件,來自QWidget幷包含一些數據。我在列表中添加一些小部件:如何使用currentItemChanged信號在QListWidget中使用我的小部件?

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

這部分代碼可能處於循環狀態(添加少量小部件)。

我也檢測項目通過連接發生變化:

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

和插槽實現:

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 
} 

如何我可以從QListWidget提取我的窗口小部件?謝謝!我希望在你的幫助下!

回答

0

閱讀doc。如果你發現QListWidget::setItemWidget()你可以找到:

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

對不起,這個愚蠢的問題!十分感謝!有用!! – Jarex

相關問題