Russian Qt Forum

Qt => Qt Quick => Тема начата: Robotex от Сентябрь 29, 2013, 12:32



Название: Регистрация объекта C++ для доступа из QML (не класса, а экземпляра класса)
Отправлено: Robotex от Сентябрь 29, 2013, 12:32
Добрый день
Помогите кто-нибудь с QML

Проблема вот в чем. Я могу написать C++ класс и зарегистрировать его для использования в QML. А можно ли сделать тоже самое для объекта класса? Например, у меня есть класс тумблер и куча объектов этого класса. И при этом мне нужно отобразить на экране эти тумблеры и иметь возможность переключать их, изменяя при этом данные соответствующего объекта.
Возможно такое?

С уважением,
Николай


Название: Re: Регистрация объекта C++ для доступа из QML (не кl
Отправлено: mutineer от Сентябрь 29, 2013, 12:44
Истанциировать эти объекты прямо в QML не вариант?

Или посмотри на QDeclarativeContext::setContextProperty


Название: Re: Регистрация объекта C++ для доступа из QML (не класса, а экземпляра класса)
Отправлено: Robotex от Сентябрь 29, 2013, 13:10
Ну тут мне хотелось бы работать именно с C++, а в QML только выводить отображение состояний объектов из C++


Название: Re: Регистрация объекта C++ для доступа из QML (не класса, а экземпляра класса)
Отправлено: Robotex от Сентябрь 29, 2013, 13:13
Т.е. есть у меня класс Ship, у него внутри есть объект Shields, отражающий состояние щитов корабля и позволяющий управлять ими, а в QML есть объект Shields, который является индикатором состояния щитов - я просто кинул его на поле и забыл про него, когда я изменяю состояние щитов в C++, индикатор автоматически обновится на экране. Но что если у меня несколько кораблей и у каждого должен быть свой индикатор?


Название: Re: Регистрация объекта C++ для доступа из QML (не класса, а экземпляра класса)
Отправлено: mutineer от Сентябрь 30, 2013, 00:07
Сделать один объект для внутреннего представления, а другой в qml для отображения и связать их


Название: Re: Регистрация объекта C++ для доступа из QML (не класса, а экземпляра класса)
Отправлено: Robotex от Сентябрь 30, 2013, 11:00
Я уже нашел решение: http://qt-project.org/doc/qt-5.0/qtqml/qtqml-cppintegration-contextproperties.html Всем спасибо.


Название: Re: Регистрация объекта C++ для доступа из QML (не класса, а экземпляра класса)
Отправлено: mutineer от Сентябрь 30, 2013, 11:02
Ага, про это был мой первый ответ