0

我有 QListWidget 指针(pListWidget)。A 有我的自定义(QCustomItem)小部件,从 QWidget 初始化并包含一些数据。我在列表中添加了一些小部件:

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 中提取我的小部件?谢谢!我希望得到你的帮助!

4

1 回答 1

0

阅读文档。如果你找到了QListWidget::setItemWidget(),你可以找到:

QWidget * QListWidget::itemWidget(QListWidgetItem * item) const
于 2017-07-07T15:05:46.497 回答