Я хочу перечислить все объекты (производные от QObject
), существующие и вновь созданные в QQmlApplicationEngine
. Основная цель — выполнить следующие строки кода для каждой из них:
void denominate(QObject * const object)
{
if (object->objectName().isEmpty()) {
object->setObjectName(object->metaObject()->className());
}
}
Это необходимо, чтобы различать некоторые объекты в среде выполнения QML. Скажем, когда из Component
создается StackView
элементов, и я хочу знать, какой из них действительно находится сверху.
Создание некоторых компонентов или классов C++ задерживается. И если я получу корневые объекты и перечислю их children()
, это половина решения. Также есть сигнал QQmlApplicationEngine::objectCreated
, но я не до конца понимаю взаимосвязь между контекстами, движком и (корневыми) объектами.
Как назвать все безымянные объекты, которые живут в QQmlEngine
?
typeof
всегда возвращает объект. - person Tomilov Anatoliy   schedule 22.08.2017objectName
только для интересных объектов. Но это также подверженный ошибкам подход. Что, если я пропущу инициализацию этого свойства для некоторых интересующих объектов? - person Tomilov Anatoliy   schedule 22.08.2017QQuickItem
. Связанный код не является C++. - person Tomilov Anatoliy   schedule 22.08.2017