В визуальном редакторе файлов *.ui.qml нет возможности прописывать обработчики на JavaScript коде. Например, при попытке прописать onClicked() для кнопки, появляется ошибка:
Блоки JavScript не поддерживаются в форме Qt Quick UI. (M223)
Обычно файлы *.ui.qml используют следующим образом: в нем осписывают всю структуру из подэлементов и их привязки. Потом в коде, где данный тип (по сути - файл *ui.qml) используется, делают инстанс данного типа, и прописывают нужные свойства. Но свойства можно прописать только самому типу, а не его вложенным элементам.
Вопрос: а существует ли возможность прописать в инстансе свойства подэлементу? Например, на форме MainMenu.ui.qml есть кнопка Button с ID buttonIndicatorPanel, и ей нужно в инстансе MainMenu задать обработчик onClicked(). Как это сделать?
Я пробовал так:
MainMenu {
id: mainMenu
anchors.fill: parent
buttonIndicatorPanel.onClicked: { ... }
}
Но идет ошибка:
Cannot assign to non-existent property "buttonIndicatorPanel"
ЗЫЖ Использование *.ui.qml - это требования к проекту. Я бы обошелся и без визуального редактора, но хотят чтобы мифический дизайнер смог менять форму путем мышетыканья.