W Qt 5.4 szablon podczas tworzenia nowego "pliku QtQuick UI" generuje dwa pliki: MyScreen.qml
i MyScreen.ui.qml
.Praca z plikami .ui.qml
Plik wydaje się być przeznaczony tylko dla interfejsu użytkownika, ponieważ Qt Creator sugeruje, że należy go edytować tylko w trybie projektowania. To sugeruje, że powinienem tworzyć obiekty interfejsu użytkownika (etykiety, przyciski itp.) Tam i w jakiś sposób odnosić się do nich w pliku MyScreen.qml
, w którym znajduje się logika. Zasadniczo brzmi to świetnie, ale Qt niestety nie ma przykładów, jak pracować z tymi 2 plikami.
Oto zawartość tych plików:
MyScreen.qml
:
import QtQuick 2.4
MyScreen {
}
MyScreen.ui.qml
(I dodaje etykietę tekstową w trybie projektowania):
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
}
}
próbowałem uruchamianiu tego MyScreen
dla użyj w StackView
(patrz poniżej), ale (co nie jest zaskoczeniem) nie widzę etykiety.
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
}
}
Wszelkie wskazówki dla początkujących QML?
Jakikolwiek komunikat o błędzie pojawia się podczas pracy? Chyba problem polega na tym, że masz dwa komponenty o tej samej nazwie: 'MyScreen'. Zarówno MyScreen.qml, jak i MyScreen.ui.qml tworzą obiekt MyScreen i powodują konflikt. Podczas tworzenia pliku QtQuick UI spróbuj nazwać "Nazwa komponentu" i "Nazwa formularza komponentu" inaczej. – mcchu
duh :) Dzięki mcchu, jeśli umieścisz to w odpowiedzi, dam ci kilka punktów! – Tim