Qt-动态创建、读取和销毁小部件(QLineEdit)

Qt-动态创建、读取和销毁小部件(QLineEdit),qt,widget,dynamically-generated,Qt,Widget,Dynamically Generated,我有以下情况: 我有一个QSpinBox,我的应用程序的用户可以在其中选择要创建的项目的实例数。在下一步中,他必须为每个项目指定一个名称。我想通过动态创建一些QLabel和QLineEdits来解决这个问题,这些QLabel和QLineEdits与用户在SpinBox中选择的编号相对应。因此,当数字上升时,我想添加新的线条编辑,当数字下降时,我想删除现在过时的线条编辑 嗯,猜猜看,这比我想象的要困难得多。我在网上搜索过,但结果非常令人失望。动态创建、维护(可能在列表中?)和销毁这些小部件似乎没有

我有以下情况:

我有一个QSpinBox,我的应用程序的用户可以在其中选择要创建的项目的实例数。在下一步中,他必须为每个项目指定一个名称。我想通过动态创建一些QLabel和QLineEdits来解决这个问题,这些QLabel和QLineEdits与用户在SpinBox中选择的编号相对应。因此,当数字上升时,我想添加新的线条编辑,当数字下降时,我想删除现在过时的线条编辑

嗯,猜猜看,这比我想象的要困难得多。我在网上搜索过,但结果非常令人失望。动态创建、维护(可能在列表中?)和销毁这些小部件似乎没有简单的方法。有人能给我指出正确的方向吗?

花点时间检查一下,它能为您提供您想要的功能

一个小示例:此函数将一个新元素添加到
QListWidget
,并将定义的
QWidget
作为视图返回当前索引:

QModelIndex MainWindow::addNewItem(QWidget* widget) {
    QListWidgetItem* item = new QListWidgetItem;
    ui->listWidget->addItem(item1);
    ui->listWidget->setItemWidget(item, widget);
    return ui->listWidget->indexFromItem(item);
}
现在,如果您的用户选择了X个项目,您应该迭代创建X个小部件,您可以将所有小部件保存在
QList
中:

listWidget.clear();
for (int i=0; i<X; i++) {
    QTextEdit* edit = new QTextEdit();
    const QModelIndex& index = addNetItem(edit);
    qDebug() << "New element: " << index;
    listWidget.append(edit);
    // Handle edit text event
    connect(edit, SIGNAL(textChanged()), this, SLOT(yourCustomHandler()));
}
listWidget.clear();
对于(int i=0;i