16 ноября 2018 г. 5:56

Как забрать текст из QLineEdit, при условии, что виджетов много

Qt, QLineEdit

Здравствуйте.

Добавил в VerticalLayout много виджитов. Часть из них QLineEdit. Следующих кодом я определяю QLineEdit на моем VerticalLayout. Но не могу получить из него текст. ui->w->text(); не работает.

  for (int i = 0; i <= ui->SearchVerticalLayout->count() - 2; i++)
    {
        QWidget* w = ui->SearchVerticalLayout->itemAt(i)->widget();
        QString ClassName = w->metaObject()->className();
        if (ClassName == "QLineEdit")
        {
            QString Test2;
            //Test2 = ui->w->text();
            qDebug()<< Test2;
        }

    }



Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
5

А почему ui->w? У вас же w и есть объект. Его просто надо привести кастом к QLineEdit и делать с ним что хотите.


Да и если делать через qcast, тогда не нужна проверка через ClassName (на мой взгляд это не очень красиво).

Синтаксис:

TYPE qobject_cast<TYPE>(QObject *object)

Если вернёт nullptr, значит искомый объект не того типа.


Добрый день, попробуйте так

for (int i = 0; i <= ui->SearchVerticalLayout->count() - 2; i++)
{
    QWidget* w = ui->SearchVerticalLayout->itemAt(i)->widget();
    if (QLineEdit* lineEdit = static_cast<QWidget*>(w))
    {
        qDebug() << lineEdit->text();
    }
}

Qt ругается на if (QLineEdit* lineEdit = static_cast<QWidget*>(w))

D:\QTProject\ReaderResume\mainwindow.cpp:758: ошибка: cannot bind rvalue '(QLineEdit*)((MainWindow*)this)->MainWindow::ui->Ui::MainWindow::<anonymous>.Ui_MainWindow::SearchVerticalLayout->QVBoxLayout::<anonymous>.QBoxLayout::itemAt(i)->QLayoutItem::widget()' to 'QLineEdit*&'


Сорян, чушь написал в условии, так правильно будет

if (QLineEdit* lineEdit = dynamic_cast<QLineEdit*>(w))

спасибо

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Как стать автором?

Внесите вклад в развитие сообщества EVILEG.

Узнайте, как стать автором сайта.

Изучить
Donate

Добрый день, Дорогие Пользователи !!!

Я Евгений Легоцкой, разработчик EVILEG. И это мой хобби-проект, который помогает учиться программированию другим программистам и разработчикам

Если сайт помог вам, и вы хотите также поддержать развитие сайта, то вы можете сделать пожертвование следующими способами

PayPalYandex.Money
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг Timeweb
АП
2 июня 2020 г. 22:11
Алексей Пикенин

C++ - Тест 005. Структуры и Классы

  • Результат:75баллов,
  • Очки рейтинга2
2 июня 2020 г. 14:04
Даниил Чижевский

C++ - Тест 001. Первая программа и типы данных

  • Результат:86баллов,
  • Очки рейтинга6
a
1 июня 2020 г. 11:15
alekseyttrv

C++ - Тест 005. Структуры и Классы

  • Результат:83баллов,
  • Очки рейтинга4
Последние комментарии
31 мая 2020 г. 9:15
IscanderChe

Как установить OpenCV на Qt под Windows

Добавлю от себя: на Windows 10 x64 с MinGW 7.3.0 в CMake надо установить флаг OPENCV_ENABLE_ALLOCATOR_STATS=OFF, тогда всё скомпилится нормально.
29 мая 2020 г. 14:00
Евгений Легоцкой

Django - Урок 023. Like Dislike система с помощью GenericForeignKey

Думал так, но похоже что нет. {{ post.votes.likes.user.username }} Это же QuerySet будет, а не отдельный единственный объект {% for vote in post.votes %} {{ vote.user.username …
29 мая 2020 г. 12:43
Владислав Меленчук

Django - Урок 023. Like Dislike система с помощью GenericForeignKey

А как получить имя пользователя, который поставил лайк? Думал так, но похоже что нет. {{ post.votes.likes.user.username }}
29 мая 2020 г. 7:30
Евгений Легоцкой

Qt/C++ - Урок 039. Как закрасить строку в QSqlTableModel по значению в столбце

У меня работает. Исправлял в проекте, который приложен к статье. А что происходит в вашем коде, с учётом места вызова этого кода, я знать не могу ;) Дебажьте и добавляйте условия, кото…
Сейчас обсуждают на форуме
МА
2 июня 2020 г. 10:40
Михаил А

Qt- C++ QTableView подсветить строку

Да, спасибо.
2 июня 2020 г. 3:46
Евгений Легоцкой

Медиа файлы Google Firebase

Картинки можете попробовать сжимать через QPixmap, там есть возможность установки scaleFactor, через него можете устанавливать нужные параметры. А что касается конвертации видео, то лучше п…
2 июня 2020 г. 3:01
Евгений Легоцкой

Перехват обращения к локальным файлам QWebEngineView

В вашем случае вполне адекватное решение. Так сказать меньше зло. В противном случае пришлось бы очень много переписывать и перепиливать.
a
1 июня 2020 г. 11:26
alekseyttrv

SSL на Android

у меня стоит версия Qt 5.14.2. В настройках android поставил openssl из коробки, и этот прроект автоматически стянулся. Достаточно было только добавить в .pro-файл строку после этого и все …
1 июня 2020 г. 3:21
Евгений Легоцкой

QModelIndex становится не действительным, но валидный

Не гоните лошадей. quintptr aid вам не нужно сохранять. Попробуйте ограничиться только колонкой и строкой. А также используете метод index() вашей модели, чтобы по строке и колонке возвраща…
О нас
Услуги
© EVILEG 2015-2020
Рекомендует хостинг TIMEWEB