【问题标题】:How to take my widget in QListWidget, using currentItemChanged signal?如何使用 currentItemChanged 信号在 QListWidget 中获取我的小部件?
【发布时间】:2017-12-11 22:38:20
【问题描述】:

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

【问题讨论】:

    标签: qt signals-slots qlistwidget qlistwidgetitem


    【解决方案1】:

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

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

    【讨论】:

    • 抱歉这个愚蠢的问题!十分感谢!它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2015-03-31
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    相关资源
    最近更新 更多