Это свойство содержит название объекта. Имя объекта является свойством QString QObject который значения по умолчанию к пустому QString.
Вы обычно устанавливаете это свойство, когда необходимо найти элементы QML от QT этим способом, которым к сигналам, свойствам и функциям элемента QML можно получить доступ от QT (C++) код.
тесты Автопилота используют это свойство для анализирования приложения.
От Взаимодействие с Объектами QML от C++ :
компоненты QML являются чрезвычайно деревьями объектов с детьми, которые имеют одноуровневые элементы и их собственных детей. Дочерние объекты компонентов QML могут быть расположены с помощью QObject:: имя объекта свойство с QObject:: findChild () . Например, если корневой объект в MyItem.qml имел дочерний Прямоугольный объект:
import QtQuick 2.0
Item {
width: 100; height: 100
Rectangle {
anchors.fill: parent
objectName: "rect"
}
}
ребенок мог быть расположен как это:
QObject *rect = object->findChild<QObject*>("rect");
if (rect)
rect->setProperty("color", "red");
Примечание, что объект может иметь несколько детей с тем же именем объекта. Например, ListView создает несколько экземпляров своего делегата, поэтому если его делегат будет объявлен с конкретным именем объекта, ListView будет иметь несколько детей с тем же именем объекта. В этом случае, QObject:: findChildren () может использоваться для нахождения всех детей с именем объекта соответствия.
Предупреждение : В то время как возможно использовать C++, чтобы получить доступ и управлять объектами QML глубоко в дерево объектов, мы рекомендуем не проявить этот подход за пределами тестирования приложения и разработки прототипа. Одна сила QML и интеграции C++ является способностью реализовать пользовательский интерфейс QML отдельно от логики C++ и бэкенда набора данных и этой стратегии повреждения, если сторона C++ достигает глубоко в компоненты QML для управления ими непосредственно. Это мешало бы, например, подкачало бы компонент представления QML для другого представления, если бы новый компонент пропускал необходимое имя объекта. Для реализации C++ лучше знать как можно меньше о реализации пользовательского интерфейса QML и составе дерева объектов QML.
, Если имя объекта необходимо для тестирования, это определенно стоит того. objectName’s не должен, очевидно, быть добавлен если не необходимый. При добавлении их должны сопровождаться общие инструкции QML для производительности .
Источник: , Каково влияние на память добавления имен объектов к объектам QML?
1: это привыкло к объектам поиска по имени
2: Все они, это прибывает из QObject
3: это используется автопилотом для анализирования приложения от тестовых сценариев
4: я не действительно уверен
5: Я не думаю, что идентификатор является поддающимся обнаружению от внешних инструментов (как автопилот)