ios应用程序的qml太慢了

时间:2016-02-03 13:31:50

标签: c++ ios qt qml stackview

我正在使用Qt和qml开发一个应用程序,我正在为OSX,iOS和Android构建它。该应用程序包含一个只有三页的StackView。在第二页中,我有五个MenuItems和五个Dialogs。

虽然这个非常简单的应用程序在OSX和Android上运行时具有出色的性能,但它可以延迟3-4秒来显示iOS上的第二页。

我已经尝试了#34; Qml Profiler"我发现延迟发生在创建描述第二页的qml文件的过程中。

我也试过了#t; 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"
            }
        }
    }

我已经尝试了这么长时间才找到解决方案。而且我认为没有人曾试图为iOS制作一个简单的qml apliccation并面对我所面临的问题。

谢谢你, 迈克尔

0 个答案:

没有答案