Как обратиться к динамически созданному lineEdit?
Есть проблема, вот я динамически создал line edit. Но как мне теперь к нему обратиться??Например чтобы поместить его содержимое в переменную.
QLineEdit* lineEdit = new QLineEdit;
layout->addWidget(lineEdit);
Если объявить имя то непонятно как к нему обратиться. Через ui->"Имя лайн эдита".text(); не сработает.
QLineEdit* lineEdit = new QLineEdit;
lineEdit->setObjectName("lineEdit_" + QString::number(counter));
layout->addWidget(lineEdit);
counter++;
Ответы (2 шт):
Как я понял из комментариев, задачу можно решить, если выполнить подписку на изменение данных пользователем. Например, через привязку лямбды к сигналу textChanged:
connect(lineEdit , &QLineEdit::textChanged, [this](const QString& text) {
// использовать text как новый текст, введённый пользователем
});
У меня удалось решить проблему таким образом:
1)Создаем динамический массив std::vector<QLineEdit*> veclineEdits;
2)Создаем и добавляем в окно lineEdit
3)Сохраняем lineEdit
в созданный массив veclineEdits
После этого имеется доступ ко всем созданным lineEdit через массив и их можно использовать(например я вывожу в qDebug() то что у меня написано в lineEdit с индексом i который я ввожу в lineEdit заранее определенном)