从 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 ]
我有 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