3

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

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

我已经尝试过“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 {
        }
    }
}

第一页.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"))
        }
    }
}

第二页.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"));
    }
}

第三页.qml

import QtQuick 2.0

    Item {
        Rectangle {
            anchors.fill: parent
            color: "green"
            Text {
                text: "third page"
            }
        }
    }

我已经尝试了很长时间才能找到解决方案。而且我认为不可能没有人尝试过为 iOS 制作一个简单的 qml 应用程序并面对我所面临的问题。

谢谢你,迈克尔

4

0 回答 0