如何在qt中实现此效果:单击按钮时添加新的lineedit

如何在qt中实现此效果:单击按钮时添加新的lineedit,qt,Qt,我是新手。我希望在我的dock小部件中有一个GUI效果,每当我单击“添加更多”按钮或链接时,底部会出现一个新的lineEdit字段 我看到很多软件都有类似的功能 point-1 (_____,_____) point-2 (_____,_____) + Add More Points 当您单击“+添加更多点””时,将显示新的点3并等待输入 我现在的代码是这样的: #include "perfectPanel.hpp" perfectPanel::perfectPanel(QWidget *p

我是新手。我希望在我的dock小部件中有一个GUI效果,每当我单击“添加更多”按钮或链接时,底部会出现一个新的lineEdit字段

我看到很多软件都有类似的功能

point-1 (_____,_____)
point-2 (_____,_____)
+ Add More Points
当您单击“
+添加更多点”
”时,将显示新的点3并等待输入

我现在的代码是这样的:

#include "perfectPanel.hpp"

perfectPanel::perfectPanel(QWidget *parent) : QWidget(parent)
{
    setupUi(this);
    readInfo();

    connect
    (
        btn_accept,
        SIGNAL(clicked()),
        this,
        SLOT(readInfo()),
        Qt::UniqueConnection
    );
}

// Destructor
perfectPanel::~perfectPanel()
{}

void perfectPanel::readInfo()
{
    xObject_ = vtkDoubleArray::New();
    yObject_ = vtkDoubleArray::New();
    xObject_->InsertNextValue( lineEdit_xObject01X->text().toDouble() );
    xObject_->InsertNextValue( lineEdit_xObject02X->text().toDouble() );
    yObject_->InsertNextValue( lineEdit_yObject01Y->text().toDouble() );
    yObject_->InsertNextValue( lineEdit_yObject02Y->text().toDouble() );
}

您需要将
+添加更多点
按钮添加到
perfectPanel
类中。假设您已经在类的私有数据部分使用此声明完成了此操作:

QPushButton*m_AddPoint

现在,将按钮的
clicked()
信号连接到某个插槽以添加点。从示例代码中,您似乎已经知道如何做到这一点,因此我将不详细介绍。假设您已将按钮的单击事件连接到
addPoint
函数

void perfectPanel::addPoint()
{
    /* The "this" argument is needed to prevent memory leaks */
    QLineEdit* Field = new QLineEdit(this);

    /* Your perfectPanel class has some layout where the existing LineEdit rows
       are. I'm assuming m_Layout is a pointer to that layout here. */
    m_Layout->addWidget(Field);
    Field->show();
}

您需要将
+添加更多点
按钮添加到
perfectPanel
类中。假设您已经在类的私有数据部分使用此声明完成了此操作:

QPushButton*m_AddPoint

现在,将按钮的
clicked()
信号连接到某个插槽以添加点。从示例代码中,您似乎已经知道如何做到这一点,因此我将不详细介绍。假设您已将按钮的单击事件连接到
addPoint
函数

void perfectPanel::addPoint()
{
    /* The "this" argument is needed to prevent memory leaks */
    QLineEdit* Field = new QLineEdit(this);

    /* Your perfectPanel class has some layout where the existing LineEdit rows
       are. I'm assuming m_Layout is a pointer to that layout here. */
    m_Layout->addWidget(Field);
    Field->show();
}

你能把你现在的密码贴出来吗?并解释它有什么问题?亲爱的扎克,当前代码中没有错误,我只想添加一个新的效果。:)你能把你现在的密码贴出来吗?并解释它有什么问题?亲爱的扎克,当前代码中没有错误,我只想添加一个新的效果。:)编译是可以的,但运行时,它会抱怨
QLayout::parentWidget:一个布局只能有另一个布局作为父布局。
我该怎么办?这听起来像是父布局的初始化问题,而不是插槽处理程序中的问题。先生,请您在此处查看详细的问题描述,编译是可以的,但运行时,它抱怨
QLayout::parentWidget:一个版面只能有另一个版面作为父版面。
我该怎么办?听起来您的问题是父版面的初始化,而不是插槽处理程序。先生,请您在此处查看详细的问题描述,