Qt / Qml и перегрузки методов

Просто столкнулся со странным поведением инфраструктуры Qt, вызывая перегруженные методы C ++ из Qml и пытаясь понять причину этого. Допустим, у меня естьQList<QVariant>-подобный класс со следующими методами:

...
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 почему-то решает вызватьvoid insert(int index, const QVariantList &items) перегрузка сitems аргумент установлен вa null QVariant пустойQVariantList вместоvoid insert(int index, const QVariant &item) перегрузка сQString завернут вQVariant.

Теперь, если я изменю порядок объявлений следующим образом, он будет работать как положено:

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

Я не смог найти ничего в документации Qt Framework относительно порядка объявлений и того, как это влияет на способ, которым методы разрешаются во время вызова.

Может кто-нибудь объяснить, пожалуйста? Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос