簡體   English   中英

QML中的動態reparentig

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM