Russian Qt Forum
Ноябрь 23, 2024, 05:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Получение ссылки на элемент в qml  (Прочитано 3866 раз)
RoulanD
Гость
« : Май 13, 2013, 16:16 »

Доброго времени суток.

Ситуация следующая:

Есть некий список элементов (Rectangle). Каждый элемент - это представление одной записи из некой базы данных. Сверху в меню есть кнопка "Редактировать", которая редактирует выделенный элемент (элементы выделяются кликом по соответствующему Rectangle). Эти Rectangl'ы естественно создаются динамически при загрузке базы данных, и при добавлении нового элемента.

Как отредактировать этот выделенный Rectangle.

Я могу создать глобальную переменную в которую могу закидывать id или objectName выделенного элемента, но как мне эту информацию преобразовать в указатель на этот самый Rectangle в функции js и изменять его так как мне угодно.

Немного запутанно. Если есть вопросы или есть идеи как организовать изменение Rectangl'a без получение ссылки на него то отписывайте.

В общем прощу помощи.


И да, мне тут стукнуло в голову что организовывать работу с базой данных через js - это вроде не самая лучшая затея. Если у кого то есть идеи как это реализовать по другому (возможно средствами Qt), буду рад услышать (увидеть).
« Последнее редактирование: Май 13, 2013, 16:50 от RoulanD » Записан
BuRn
Гость
« Ответ #1 : Май 13, 2013, 16:56 »

А если попробовать уничтожать тот ректангл и после сохранения перерисовывать его заново ? И да, зачем вам ректанглы для записей из бд? список для вашего случая не подходит ? а делегат уже сделать ректанглами. В таком случае проблема с редактированием не должно быть ибо навесив модель из сишника, при редактировании записи обновлять проблем не будет
Записан
ctin
Гость
« Ответ #2 : Май 13, 2013, 20:42 »

В чем проблема вставить TextInput и генерировать сигнал с новыми данными?
вот как я сделал для отправки значения делегата в прибор
Код:
....
id: textInput
        onActiveFocusChanged: {
            if(!activeFocus)
                newValueRequest(text)
        }
        Keys.onEnterPressed: newValueRequest(text)
        Keys.onReturnPressed: newValueRequest(text)
....
onNewValueRequest: device.setModelData(slot, index, text, "userValue")
« Последнее редактирование: Май 13, 2013, 20:44 от ctin » Записан
lighting
Гость
« Ответ #3 : Май 14, 2013, 12:21 »

Вообще у вас мне кажется подход менять надо, но если хочется сделать именно так то можно создавать эти rectangle в js скрипте и при создании сохранять ссылки на них в массиве. В качестве примера можно посмотреть same game из примеров qt.
Записан
ctin
Гость
« Ответ #4 : Май 14, 2013, 13:04 »

Правильный подход - это работать через модель данных. В C++ создается QAbstractListModel, которая засовывается в QML и у элемента вызывается Role.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.189 секунд. Запросов: 20.