ho cominciato QML imparando e sto ottenendo il seguente errore:Impossibile accedere elemento QML da id all'interno SplitView
ReferenceError: chatTextArea is not defined
Ho una funzione globale che fa qualcosa su un elemento all'interno della stessa QML file, per id.
Per qualche motivo non riesco ad accedere tramite l'ID della mia TextArea o di qualsiasi elemento all'interno di SplitView. Ma sono in grado di manipolare le proprietà di TabView e ogni scheda.
Il mio codice rotto:
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
Rectangle {
id: lobby
function appendChatMsg(msg) {
chatTextArea.append(msg) //causes: ReferenceError: chatTextArea is not defined
}
TabView {
id: frame
Tab { //I CAN access this item via ID.
id: controlPage
SplitView {
anchors.fill: parent
TableView {
Layout.fillWidth: true
}
GridLayout {
columns: 1
TextArea { //This item I CANNOT access via ID.
id: chatTextArea
Layout.fillHeight: true
Layout.fillWidth: true
}
TextField {
placeholderText: "Type something..."
Layout.fillWidth: true
}
}
}
}
}
}
Qualsiasi idea del perché chatTextArea è fuori dalla portata della mia funzione? Grazie in anticipo.
Grazie! Questo ha rimosso l'errore. Tuttavia sto ancora avendo difficoltà. Sto cercando di rispondere a un segnale che si trova nel file QML "principale". My Lobby viene caricato dinamicamente in main.qml tramite un Loader. Come posso attivare la mia funzione all'interno di Lobby.qml quando viene attivato un segnale in main.qml? – jub
È possibile raggiungere main tramite id attraverso la catena di ambito e connettersi al suo segnale tramite 'signalName.connect()', penso (probabilmente, nella Lobby 'onCompleted()'). – mlvljr