如何创建具有动态文本输入数的Qt对话框?

如何创建具有动态文本输入数的Qt对话框?,qt,qt-creator,Qt,Qt Creator,是否有一种方法可以使表单/对话框具有动态数量的文本输入元素,例如行编辑小部件?因此,用户可以选择添加另一项。如果您有一个带有布局的对话框。您可以将插槽连接到对话框中的按钮,该按钮将通过检索对话框布局并添加新项目来添加项目 比如: void MyDialog::on_addButton_clicked() { QLayout *layout = layout(); if (layout) { layout->addWidget(new QLineEdit())

是否有一种方法可以使表单/对话框具有动态数量的文本输入元素,例如行编辑小部件?因此,用户可以选择添加另一项。

如果您有一个带有布局的对话框。您可以将插槽连接到对话框中的按钮,该按钮将通过检索对话框布局并添加新项目来添加项目

比如:

void MyDialog::on_addButton_clicked()
{
    QLayout *layout = layout();
    if (layout) {
        layout->addWidget(new QLineEdit());
    }
}

如果您为这些项指定了一个唯一的名称:setObjectNamesomeName,那么以后可以使用findChildsomeName;查找所有添加的行编辑以供进一步处理。

您不能使用QTableWidget吗?当您的对话框是已知的标头时,为什么要检索布局?您是否测试过布局是否可以检索任何内容,尤其是在有多个布局的情况下?@MohammadKanan您需要布局来动态添加项目,因此您已经有了指针,或者您将通过getter检索它。此外,该对话框只能有一个布局集,因此getter将始终返回正确的布局集。我认为在您的示例中没有geter,QLayout::count和QLayout::itemAtah,但您不需要这样做,对吗?。我不会检查布局中已经存在的项目数量,因此我不会使用它来计算要添加的小部件的位置。但我认为,如果使用addWidget,新的小部件将被添加到最后。这不是我的观点,我的意思是对静态QLayout::count的调用将绑定到现有布局。。