[英]dynamical reparentig in qml
我想更改qml项目的动态类型而无需重新创建。 在此示例中,窗口转换为弹出窗口,问题是如何将其转换为qml Item。
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
}
}}
您想达到什么目的?
您必须了解,当将“窗口”“转换”为弹出窗口时,对象的实际类型不会改变。 您仅设置一个标志,这恰好使您的窗口具有弹出行为。 至于动态更改QML对象的类型,我什至认为这是不可能的,我也看不出它的意义。
当我想制作一个“小狗”时,我会使用类似的东西
长方形{
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)
...}
并且,当我想显示弹出选择器时。visible= true
我也在动态组件创建/销毁中使用了此函数(find_superparent)...
这种方法有效...我不知道是否存在更好的方法...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.