0

再作成せずに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
    }
}}
4

2 に答える 2

0

何を達成しようとしていますか?

Window をポップアップ Window に「変換」しても、オブジェクトの実際の型は変わらないことを理解しておく必要があります。たまたまウィンドウにポップアップ動作を与えるフラグを設定するだけです。QML オブジェクトの型を動的に変更することに関しては、私はそれが可能だとは思いませんし、その意味もわかりません。

于 2014-09-25T10:17:53.623 に答える
0

「子犬」を作りたいときは、そのようなものを使います

矩形{

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) を動的コンポーネントの作成/破棄でも使用しています...

この方法は機能します...より良い方法が存在するかどうかはわかりません...

于 2016-10-04T15:12:49.300 に答える