1

新手来了 我想在我的停靠小部件中具有 GUI 效果,每当我单击“添加更多”按钮或链接时,底部都会出现一个新的 lineEdit 字段。

我看到很多软件都有类似的东西

point-1 (_____,_____)
point-2 (_____,_____)
+ Add More Points

而当你点击“ + Add More Points”时,会出现一个新的point-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() );
}
4

1 回答 1

1

您需要将该+ Add More Points按钮添加到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();
}
于 2013-01-04T16:05:57.660 回答