Название: Получение ссылки на qml элемент в C++ Отправлено: ecspertiza от Июль 12, 2012, 13:28 Пока не могу найти решение, но интересно, можно ли в C++ части получить объект созданный в qml, а еще лучше его QRect() . Например создали в qml Rectangle и в C++ после создания получили ссылку на этот Rectangle и вытащили например его размеры.
Название: Re: Получение ссылки на qml элемент в C++ Отправлено: meandnano от Июль 13, 2012, 13:53 На вскидку - создать Q_INVOKABLE метод для контекста, который принимает аргументом QObject*. Далее вызвать этот метод из qml и передать в него id нужного объекта.
А вообще, для любого QObject можно вызвать метод findChild, который найдет нужный объект-потомок по его objectName. Название: Re: Получение ссылки на qml элемент в C++ Отправлено: mutineer от Июль 13, 2012, 13:59 http://doc.crossplatform.ru/qt/4.7.x/html-qt/qtbinding.html#locating-child-objects
Название: Re: Получение ссылки на qml элемент в C++ Отправлено: ecspertiza от Июль 13, 2012, 16:19 Спасибо за советы, сделал конечно немного по другому, просто в Component.onComplete передавал в С++ часть нужный элемент. Но и вариант с поиском тоже есть вот псевдокод
Код: QDeclarativeView view; единственное но, id в qml не равен objectName ))) вообщем поэтому и сделал через Component.onComplete Название: Re: Получение ссылки на qml элемент в C++ Отправлено: mutineer от Июль 13, 2012, 16:25 view->rootObject() возвращает один объект. Зачем по нему делать foreach?
В qml можно установить objectName. По ссылке, которую я дал, это видно Название: Re: Получение ссылки на qml элемент в C++ Отправлено: ecspertiza от Июль 14, 2012, 22:07 foreach конечно же не по rootObject() :) а скорее так
Код: QDeclarativeView view; писал быстро, поторопился ))) насчет objectName видел, но к тому моменту уже сделал по другому. Кстати пока был не вкурсе про objectName, искал у какого класса свойство id задается , был уверен что у QDeclarativeItem ,но почему то там не нашел. Название: Re: Получение ссылки на qml элемент в C++ Отправлено: meandnano от Июль 16, 2012, 10:37 Справедливости ради надо сказать, что objectName - свойство общее для всех QObject*. Если вы в дизайнере рисуете UI, то обращение к виджетам (как правило) тоже делается через objectName, только не через поиск (хотя можно и так), а примерно как ui->mySuperObject.
Название: Re: Получение ссылки на qml элемент в C++ Отправлено: mutineer от Июль 16, 2012, 10:48 Справедливости ради надо сказать, что objectName - свойство общее для всех QObject*. Если вы в дизайнере рисуете UI, то обращение к виджетам (как правило) тоже делается через objectName, только не через поиск (хотя можно и так), а примерно как ui->mySuperObject. Какбы нет. ui->mySuperObject - обращение к члену объекта ui с именем mySuperObject. С objectName это если и связано, то только тем, что генерируемое имя члена ui-класса равно его objectName |