Esta propriedade contém o nome do objeto. O objectName é uma propriedade QString do QObject, cujo padrão é um QString vazio.
Normalmente, você define essa propriedade quando precisa encontrar elementos QML do Qt. Desta forma, os sinais, propriedades e funções de um elemento QML podem ser acessados a partir do código Qt (C ++).
Os testes de piloto automático usam essa propriedade para analisar seu aplicativo.
Em Interagindo com Objetos QML do C ++ :
Os componentes QML são essencialmente árvores de objeto com filhos que têm irmãos e seus próprios filhos. Objetos filho de componentes QML podem ser localizados usando a propriedade QObject :: objectName com QObject :: findChild () . Por exemplo, se o item raiz em MyItem.qml tiver um item Rectangle filho:
import QtQuick 2.0
Item {
width: 100; height: 100
Rectangle {
anchors.fill: parent
objectName: "rect"
}
}
A criança pode ser localizada assim:
QObject *rect = object->findChild<QObject*>("rect");
if (rect)
rect->setProperty("color", "red");
Observe que um objeto pode ter vários filhos com o mesmo objectName. Por exemplo, ListView cria várias instâncias de seu delegado, portanto, se seu delegado é declarado com um objectName específico, o ListView terá vários filhos com o mesmo objectName. Neste caso, o QObject :: findChildren () pode ser usado para encontrar todas as crianças com um objectName correspondente.
Aviso : Embora seja possível usar o C ++ para acessar e manipular o QML objetos profundamente na árvore de objetos, recomendamos que você não esta abordagem fora do teste de aplicativos e prototipagem. 1 força da integração QML e C ++ é a capacidade de implementar o Interface de usuário QML separadamente da lógica C ++ e do backend de conjunto de dados, e essa estratégia é quebrada se o lado do C ++ atingir profundamente o QML componentes para manipulá-los diretamente. Isso dificultaria para, por exemplo, trocar um componente de visualização QML por outra visualização, se novo componente estava faltando um objectName necessário. É melhor para o Implementação de C ++ para saber o mínimo possível sobre o usuário do QML implementação de interface e a composição da árvore de objetos QML.
Se um objectName for necessário para o teste, isso definitivamente vale a pena . objectName’s obviamente não devem ser adicionados quando não forem necessários. Ao adicioná-los, as diretrizes gerais de QML para desempenho devem ser seguidas.
Fonte: Qual é o impacto na memória de adicionar objectNames a itens QML?