ios - 如何通过 qml 在移动设备中创建新窗口?

标签 ios qt qml

背景: 我正在尝试使用 qt 创建一个跨平台应用程序。

解决方案 发现:

        MouseArea {
            id: toOtherViewClicked
            width: 44
            anchors.fill: parent

            onClicked: {
                var component = Qt.createComponent("listOfMaterials.qml")
                var window = component.createObject("secondQML")
                window.show()
            }
        }

问题 它的行为真的很奇怪。窗口显示几分钟,但随后再次返回主窗口。是否可以以适当的方式呈现新窗口打开?

最佳答案

您应该记录 Component.onDestruction()

GarbageCollector 很可能会删除您的窗口,因为您没有父集。
component.createObject() 的正确语法将一个对象(父对象)作为第一个参数。您改为传递一个字符串。如果您传递一个对象,很有可能 GarbageCollector 不会删除您新创建的窗口,直到父对象被销毁。

让它变成这样:

var window = component.createObject(toOtherViewClicked)

关于ios - 如何通过 qml 在移动设备中创建新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42271409/

相关文章:

c++ - 我们可以在构造函数中定义静态类成员吗?

qt - 中继器接入元件

c++ - 尝试在 qml 文件中使用共享库时出错

iphone - 如何在标签中获取 map 注释标题样式/字体

c++ - Qt OpenGL 错误 '_imp_gl...'

ios - 如何为adHoc用户测试APNS?

c++ - `Counter::metaObject() const'的多重定义

c++ - 用qml ListView显示Json数据

objective-c - 动画行删除后重新加载表

iphone - 哪种加密算法在 NSData 写入文件保护中使用 iOS, key 大小是多少?