In Qt 5.4 erzeugt die Vorlage beim Erstellen einer neuen "QtQuick UI-Datei" zwei Dateien: MyScreen.qml
und MyScreen.ui.qml
.
Die MyScreen.ui.qml
-Datei scheint nur für die Benutzeroberfläche zu sein, da Qt Creator vorschlägt, dass Sie sie nur im Entwurfsmodus bearbeiten sollten. Das bedeutet, dass ich dort UI-Objekte (Labels, Buttons, etc ...) anlegen und irgendwie auf sie in der MyScreen.qml
-Datei verweisen sollte, wo die Logik gehen würde. Im Prinzip klingt das großartig, aber leider gibt es bei Qt keine Beispiele, wie man mit diesen 2 Dateien arbeitet.
Hier sind die Inhalte dieser Dateien:
MyScreen.qml
:
MyScreen.ui.qml
(Ich habe die Textbeschriftung im Entwurfsmodus hinzugefügt):
Ich habe versucht, ein MyScreen
zur Verwendung in StackView
zu instanziieren (siehe unten), aber (nicht überraschend) sehe ich das Label nicht.
main.qml
:
Irgendwelche Hinweise für einen QML-Neuling?
Wenn Sie QtQuick UI File in QtCreator erstellen, sollten Sie "Component name" und "Component form name" anders benennen.
MyScreen.qml erstellt eine MyScreen
-Komponente, jedoch in der Implementierung:
MyScreen
erstellt sich selbst rekursiv.
In diesem Fall erstellt MyScreen.ui.qml eine MyScreen
-Komponente im Projekt. Zur gleichen Zeit verwendet der Code in MyScreen.qml, der von QtCreator automatisch generiert wurde, die von MyScreen.ui.qml erstellte Komponente MyScreen
. Leider ist MyScreen
auch der Name von MyScreen.qml und sorgt dafür, dass er sich zur Laufzeit rekursiv selbst erstellt.
Verwenden Sie verschiedene Namen, um das Problem zu lösen. Benennen Sie beispielsweise MyScreen.ui.qml in MyScreenForm.ui.qml um.
Tags und Links qt qml qt-creator qtquick2 qtquick-designer