背景: 我正在尝试使用 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/