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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Какие-то непонятки с QAbstractlistmodel  (Прочитано 1666 раз)
BuRn
Гость
« : Июль 30, 2015, 15:24 »

Добрый день товарищи. Вопрос к тем кто имел дело с протягиванием моделей из плюсов в qml. Вообщем столкнулся со следующей ситуацией. Есть класс, наследние от модели, в другом классе, содержится экземпляр этой модели. Выглядит это так:
Код:
private:
    Models::MessageModel _modelMessages;
    Nume::Main               *_core;
Так как QAbstractlistmodel не дает копировать, что в прнципе логично, я создал функцию которая возвращает эту модельку в qml.
Код:
Models::MessageModel* ContactMessage::getMessagesModel()
{
    return &_modelMessages;
}
В qml создаются объекты типа ContactMessage которые хранят в себе по экземпляру модельки. При клике на контакт я беру нужный объект и вытаскиваю с помошью функции модель на этот объект. Все работает до следующего переключения. При клике первый раз, модель установилась, я увидел то, что хотел во вью, при клике второй раз, срабатывает деструктор модели, кто его вызвал для меня загадка, переключение объектов выглядит так :
Код:
property var messages: userMessager ? userMessager.getMessagesModel() : []
   onCurrentIdUserChatChanged: {
        selectedUser(currentIdUserChat)
        userMessager = contactMessagerObjects.filter(function(e){
            if(e.id==currentIdUserChat)
                return true;
            return false
        })[0]
        userMessager.loadMessages(20);
    }
Но в случае если делать тоже самое, но только высунуть наружу свойства типа :
Код:
    Q_PROPERTY(Models::MessageModel* messages READ getMessagesModel )
Проблемы нет. Сталкивался кто ?
« Последнее редактирование: Июль 30, 2015, 15:26 от BuRn » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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