Я занимаюсь разработкой приложения с использованием Qt и qml и создаю его для OSX, iOS и Android. Приложение содержит StackView, который имеет только три страницы. На второй странице у меня есть пять элементов меню и пять диалогов.
Хотя это очень простое приложение имеет отличную производительность при работе на OSX и Android, оно задерживает до 3-4 секунд, чтобы отобразить вторую страницу на iOS.
Я уже попробовал «Qml Profiler» и обнаружил, что задержка происходит во время создания файла qml, который описывает вторую страницу.
Я также попробовал «Qt Quick Compiler» (Коммерческий Qt) без существенной разницы.
main.qml
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
ApplicationWindow {
id: app
title: "MyApp"width: 1024
height: 768
visible: true
StackView {
id: stackView
anchors.fill: parent
initialItem: firstPage
}
Component {
id:firstPage
FirstPage {
}
}
}
firstPage.qml
import QtQuick 2.3
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
Item {
id:firstPage
signal collectionClicked(string name)
focus: true
objectName: "firstPage"Rectangle {
anchors.fill: parent
color: "blue"}
MouseArea {
anchors.fill: parent
onClicked: {
stackView.push(Qt.resolvedUrl("SecondPage.qml"))
}
}
}
SecondPage.qml
import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
Item {
id: itemsPage
signal itemClicked()
Rectangle {
id: myRectangle
anchors.fill: parent
color: "red"
Dialog {
id: dialog1
height: 200
width: 300
//onAccepted: ;
}
Dialog {
id: dialog2
height: 200
width: 300
//onAccepted: ;
}
Dialog {
id: dialog3
height: 200
width: 300
//onAccepted: ;
}
Dialog {
id: dialog4
height: 200
width: 300
//onAccepted: ;
}
Dialog {
id: dialog5
height: 200
width: 300
//onAccepted: ;
}
Menu {
id: myMenu
title: "Menu"MenuItem {
text: "Test"//onTriggered: ;
}
MenuItem {
text: "Test"//onTriggered: ;
}
MenuItem {
text: "Test"//onTriggered: ;
}
MenuItem {
text: "Test"//onTriggered: ;
}
MenuItem {
text: "Test"//onTriggered: ;
}
}
}MouseArea {
anchors.fill: parent
onClicked: stackView.push(Qt.resolvedUrl("ThirdPage.qml"));
}
}
ThirdPage.qml
import QtQuick 2.0
Item {
Rectangle {
anchors.fill: parent
color: "green"Text {
text: "third page"}
}
}
Я так долго пытался найти решение. И я думаю, что невозможно, чтобы никто не пытался сделать простое приложение qml для iOS и столкнулся с тем, с чем я столкнулся.
Спасибо,
Майкл
Задача ещё не решена.
Других решений пока нет …