2014-09-25 35 views
0

我想更改動態類型的qml項目而無需重新創建。在這個例子中,窗口轉換爲彈出窗口,問題是如何將其轉換爲qml Item。qml中的動態reparentig

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

所以標題是關於重新養育,身體回合動態變化的類型和代碼是關於沒有按什麼沒有任何意義...... – dtech 2016-10-04 16:29:02

回答

0

你想達到什麼目的?

您必須明白當您將窗口「轉換」爲彈出窗口時,對象的實際類型不會改變。你只設置一個標誌,這恰好給你的窗口彈出一個行爲。至於動態地改變一個QML對象的類型,我不認爲這甚至是可能的,而我沒有看到它的重點。

+0

Yoann,我絕對明白在我的例子中完成的事情。但問題是如何做到這一點,而不使用任何標誌。 – Kirill 2014-09-25 10:48:37

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 = true

我在動態組件創建/銷燬中也使用這個函數(find_superparent)...

這種方法可行。我不知道是否存在更好的方法...