从布局中的Widget获取text()

时间:2015-06-02 13:26:41

标签: qt widget children

我是第一次从代码创建小部件,而不是通过创建者。它读入一个文本文件并使用材料名称(复选框启用或不启用)和厚度lineEdit填充QScrollArea小部件,如图所示。制作的小部件数量与文本文件中的条目数相对应。

我使用以下功能创建按钮和复选框:

void overlayers::newField(QString material, bool checked, double thickness)
{
    //Create new checkbox.
    QCheckBox * checkbox = new QCheckBox(material);
    checkbox->setChecked(checked);

    //Create new field.
    QLineEdit * line = new QLineEdit(QString::number(thickness));

    //Create horizontal layout.
    QHBoxLayout * layout = new QHBoxLayout();
    layout->addWidget(checkbox,Qt::AlignLeft);
    layout->addWidget(line,Qt::AlignRight);

    //Add horizontal layout to vertical.
    scrollLayout->addLayout(layout);
}

在类标题中定义了QVBoxLayout scrollLayout。

我在完成整个对话框后意识到,我必须从字段和复选框标志中获取值以保存数据,但我不知道如何遍历所有复选框和lineEdits来获取text()和checkedState()变量!

我觉得我编程错误,并且有更好的方法。是否可以按照我的方式做到这一点?如果没有,一个更好的程序员将如何做到这一点:创建可变数量的小部件并能够访问他们的数据? QVector有点什么?

谢谢堆!

http://i.stack.imgur.com/NKJVW.png

0 个答案:

没有答案