Виталий Антипов
Қар. 26, 2016, 2:28 Т.Қ.

Передача из QML в C++

Qt, QML

Добрый день. Я только начинаю изучать программирование и прошу помощи. На основе урока “База данных SQLite и работа с ней в QML Qt” сделал ListView из заполнил данными из sqlite.db. Возникла необходимость в фильтрации данных по вводимому значению в текстовом поле. Так как в QSortFilterProxyModel разобраться не смог, решил попробовать использовать сигналы и слоты, в функции слота присвоить переменной значение свойства text объекта, а саму переменную передать в фильтр при sql запросе LIKE.

poisk::poisk(QObject *parent) : QObject(parent)
{
 
}
 
void poisk::cppSlot()
{
    //находим строку ввода
    QObject* poiskKKS = this->parent()->findChild<QObject*>("poiskKKS");
    //считаем информацию из строки
    str=(poiskKKS->property("text")).toString();
qDebug()<<str;
return;
}

Но поскольку функция типа void не возвращает значение, я нигде не могу использовать переменную str. Прошу помочь передать текст из QML для свободного использования в С++.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

1
Виталий Антипов
  • Қар. 26, 2016, 9:37 Т.Қ.
  • Жауап шешім ретінде белгіленді.
Решил проблему :) Поскольку класс ListModel тоже является QObject, то код выше переписал в его слот updateModel (см. урок “База данных SQLite и работа с ней в QML Qt”). Работает как часики)

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз