In Qt 5.4, il modello durante la creazione di un nuovo "QtQuick UI File" genera due file: MyScreen.qml
e MyScreen.ui.qml
.Utilizzo di file .ui.qml
Il file MyScreen.ui.qml
sembra essere solo per l'interfaccia utente, poiché Qt Creator suggerisce di modificarlo solo in modalità progettazione. Ciò implica che dovrei creare oggetti UI (etichette, pulsanti, ecc.) Lì e in qualche modo riferirmi a loro nel file MyScreen.qml
in cui la logica andrebbe. In linea di principio questo sembra grandioso, ma sfortunatamente Qt non viene fornito con esempi su come lavorare con questi 2 file.
Ecco il contenuto di quei file:
MyScreen.qml
:
import QtQuick 2.4
MyScreen {
}
MyScreen.ui.qml
(ho aggiunto l'etichetta di testo in modalità di progettazione):
import QtQuick 2.4
Item {
width: 400
height: 400
Text {
id: text1
x: 144
y: 151
width: 103
height: 31
text: qsTr("Text")
font.pixelSize: 12
}
}
ho provato un'istanza di un MyScreen
per utilizzare in un StackView
(vedi sotto), ma (non sorprendentemente) non vedo l'etichetta.
main.qml
:
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
Window {
visible: true
StackView {
id: stack
anchors.fill: parent
initialItem: myscreen
}
MyScreen {
id: myscreen
anchors.fill: parent
}
}
Tutti gli indicatori per un newbie QML?
Viene visualizzato un messaggio di errore durante l'esecuzione? Immagino che il problema sia che hai due componenti con lo stesso nome: 'MyScreen'. Sia MyScreen.qml che MyScreen.ui.qml creano l'oggetto 'MyScreen' e creano conflitti. Durante la creazione del file dell'interfaccia utente QtQuick, provare a denominare "Nome componente" e "Nome modulo componente" in modo diverso. – mcchu
duh :) Grazie mcchu, se lo metti in una risposta ti darò alcuni punti! – Tim