Мне нужен совет о моем простом QT / QML приложение.
У меня следующая ситуация:
Что касается интерфейса, у меня есть основная область под названием «flickableArea» (flickableArea.qml), разделенная на четыре области (элемент slot1, вещь SLOT2, вещь Slot3 и предмет slot4).
Каждый слот заполнен объектом QML Rectangle.
slot1 заполнено прямоугольником с id =area1, SLOT2 заполнено прямоугольником с id =AREA2, Slot3 заполнено прямоугольником с id =AREA3, slot4 заполнено прямоугольником с id =area4
ФАЙЛ flickableArea.qml
import QtQuick 2.4
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.4
Item {
property alias mainGrid: mainGrid
property alias slot1: slot1
property alias slot2: slot2
property alias slot3: slot3
property alias slot4: slot4
id: flickableAreaItem
width: 600
height: 300
Flickable {
id: flickableArea
boundsBehavior: Flickable.DragOverBounds
interactive: true
flickableDirection: Flickable.HorizontalFlick
anchors.fill: parent
GridLayout {
id: mainGrid
columnSpacing: 3
rowSpacing: 3
rows: 2
columns: 2
anchors.fill: parent
Item {
id: slot1
Layout.fillWidth: true
Layout.fillHeight: true
clip: false
Rectangle {
anchors.fill: parent
border.width: 1
border.color: "black"}
}
Item {
id: slot2
Layout.fillWidth: true
Layout.fillHeight: true
clip: false
Rectangle {
anchors.fill: parent
border.width: 1
border.color: "black"}
}
Item {
id: slot3
Layout.fillWidth: true
Layout.fillHeight: true
clip: false
Rectangle {
anchors.fill: parent
border.width: 1
border.color: "black"}
}
Item {
id: slot4
Layout.fillWidth: true
Layout.fillHeight: true
clip: false
Rectangle {
anchors.fill: parent
border.width: 1
border.color: "black"}
}
}
}
}
Я должен динамически вставлять объекты QML в area1, AREA2, AREA3 а также area4 когда определенный сигнал запускается в коде c ++.
В коде c ++, когда сигнал срабатывает, я запускаю следующий код, чтобы создать новый объект (ObjectToIntroduce), связанный с Object.qml:
ObjectToIntroduce *obj;
obj = new ObjectToIntroduce();
QQmlContext *objContext = engine->rootContext();
objContext->setContextProperty("obj", obj);
После того, как я сделал новый ObjectToIntroduce, как я могу представить / уничтожить (просмотреть / скрыть) Object.qml в area1 / area2 / area3 / area4 из flickableArea.qml?
Я хочу знать, как лучше всего реализовать этот механизм при написании этого простого приложения на Qt / Qml.
Спасибо за совет, с наилучшими пожеланиями
Леле
Задача ещё не решена.
Других решений пока нет …