Sobrecargas de Qt / Qml e método

Acabei de encontrar um comportamento estranho da estrutura Qt, invocando métodos C ++ sobrecarregados de dentro do Qml e tentando entender o motivo por trás disso. Digamos que eu tenho umQList<QVariant>classe-like com os seguintes métodos:

...
Q_SLOT void append(const QVariant &item);
Q_SLOT void append(const QVariantList &items);
Q_SLOT void insert(int index, const QVariant &item);
Q_SLOT void insert(int index, const QVariantList &items);
...

Qml:

onclicked: {
  var itemCount = myListObject.size();
  myListObject.insert(itemCount, "Item " + (itemCount + 1));
}

Qt de alguma forma decide invocar ovoid insert(int index, const QVariantList &items) sobrecarga comitems argumento definido comoa null QVariant um vazioQVariantList ao invés devoid insert(int index, const QVariant &item) sobrecarga comQString embrulhado emQVariant.

Agora, se eu alterar a ordem das declarações da seguinte maneira, funcionará conforme o esperado:

Q_SLOT void insert(int index, const QVariantList &items);
Q_SLOT void insert(int index, const QVariant &item);

Não foi possível encontrar nada na documentação da estrutura Qt sobre a ordem das declarações e como isso afeta a maneira como os métodos são resolvidos durante a chamada.

Alguém pode me explicar? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion