从 Qlistwidget 访问 QWidget 和子 widget

Access QWidget and child widgets from Qlistwidget

我有 QListWidget,我正在填写如下项目:

    QWidget *widget = new QWidget;
    QLabel *label = new QLabel(part);
    QLineEdit *line = new QLineEdit("1");
    line->setFixedWidth(50);


    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(label);
    layout->addWidget(line);
    layout->addStretch();

    widget->setLayout(layout);


    QListWidgetItem* new_item = new QListWidgetItem();
    new_item->setSizeHint(widget->sizeHint());
    ui->listPart->addItem(new_item);
    ui->listPart->setItemWidget(new_item,widget);

看起来像这样:

我正在尝试访问 QListwidgetitem 中的 Qwidgets 并从标签和 lineedit 中获取数据。

我真的试过了,但它崩溃了,没有给出任何错误:

  QWidget *widget = qobject_cast<QWidget*>(ui->listPart->itemWidget(ui->listPart->item(0)));
  QLabel* lbl = widget->findChild<QLabel*>("label");
  qDebug() << lbl->text();

据我所知,您在创建 QLabel 时没有提供对象名称。创建标签后,尝试添加此 label->setObjectName("label")。然后你应该在调用 widget->findChild>("label");[=10= 时找到 child ]