У меня есть два файла:
PropertiesMenuView.ui.qml
PropertiesMenu.qml
В файле PropertiesMenuView.ui.qml нет логики, т. к. QtCreator не позволяет, да и предназначен он для дизайнера. И в этом файле есть ComboBox с пустой моделью (этих ComboBox там несколько штук):
ComboBox {
id: interfaceLanguageComboBox
anchors.left: parent.left
anchors.right: parent.right
model: ListModel {
id: interfaceLanguageModel
}
}
А файл PropertiesMenu.qml предназначен для того, чтобы в нем прописать код на объекты, существующие в PropertiesMenuView.ui.qml. Выглядит он так:
import QtQuick 2.6
import QtQuick.Window 2.3
import QtQuick.Controls 1.5
PropertiesMenuView {
id: menu
// Действия после создания меню
Component.onCompleted: {
interfaceLanguageModel.append("abcde");
interfaceLanguageModel.append("fghij");
}
}
Проблема в том, что при запуске проекта получаю ошибку:
PropertiesMenu.qml:10: ReferenceError: interfaceLanguageModel is not defined
И я понять не могу, почему нет доступа по идентификатору внутри типа, причем мы находимся в инстансе этого типа.
UPD. Я так понимаю, что в PropertiesMenuView.ui.qml можно сделать property alias на нужный ComboBox, и в PropertiesMenu.qml работать через него. Но черт возьми, мы же находимся в инстансе типа, зачем нам лишние костыли?