我想更改动态类型的qml项而不重新创建。在此示例窗口中,转换为弹出窗口,问题是如何将其转换为qml项。
ApplicationWindow {
title: qsTr("Hello World")
width: 640
height: 480
Window {
id: myWindow
height: 300
width: 300
visible: true
MouseArea {
anchors.fill: parent
onDoubleClicked: myWindow.flags = Qt.Popup
}
}}
答案 0 :(得分:0)
你想要达到什么目标?
您必须明白,当您将Window“转换”为弹出窗口时,对象的实际类型不会改变。您只设置了一个标志,这恰好为您的窗口提供了一个弹出行为。至于动态改变QML对象的类型,我认为它甚至不可能,而且我没有看到它的重点。
答案 1 :(得分:0)
当我想制作'pupup'时,我会使用类似的东西
矩形{
id:picker
visible:false
function find_superparent( child_object) {
var fparent;
fparent=child_object.parent;
while(fparent.parent) fparent= fparent.parent;
return fparent;
}
Component.onCompleted: picker.parent=find_superparent(picker)
... }
并且,当我想要显示弹出窗口时 picker.visible =真
我在动态组件创建/销毁中也使用了这个函数(find_superparent)......
这种方法有效...我不知道是否存在更好的方法...