LINUX.ORG.RU

Переопределение свойств в инстансе для вложенных элементов (в QML)

 , инстанс,


0

1

В визуальном редакторе файлов *.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 - это требования к проекту. Я бы обошелся и без визуального редактора, но хотят чтобы мифический дизайнер смог менять форму путем мышетыканья.

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

Нужен property alias на внутренний элемент. В том же дизайнере в списке элементов на форме квадратик можно нажать, и алиас автоматом создаст.

unC0Rr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.