QML窗口不可见

时间:2014-11-27 19:02:45

标签: qml

我有QML个应用程序,应该有很多对话框。当用户按下ToolButton时,应该可以看到相应的对话框,以便用户可以修改该对话框的控件。这是最小代码:

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.0
ApplicationWindow {
    visible: true
    property variant dialog: Loader{sourceComponent: wind}
    toolBar: ToolBar {
        Row {
            anchors.fill: parent
            ToolButton {
                iconSource: "1.png"
                checkable: true
                checked: false
                onClicked: dialog.visible=checked
            }
        }
    }
    Component {
            id: wind

            Window{
                visible: false
                flags: Qt.Dialog
                Button{
                    text: "hello"
               }
            }
        }
}

然而,当我按ToolButton对话框时,不可见。有什么问题?

1 个答案:

答案 0 :(得分:2)

property variant dialog: Loader{sourceComponent: wind} - 这是错误的,不要指望元素在声明为属性时显示,它必须是其父组件的子元素。

onClicked: dialog.visible=checked - 这是错误的,您需要使用对话框的item属性来引用加载器实例化的对象

有效的代码:

ApplicationWindow {
    visible: true
    toolBar: ToolBar {
        Row {
            anchors.fill: parent
            ToolButton {
                checkable: true
                checked: false
                onClicked: dialog.item.visible = checked
            }
        }
    }

    Loader {
        id: dialog
        sourceComponent: wind
    }

    Component {
        id: wind
        Window {
            width: 100
            height: 100
            Button {
                text: "hello"
            }
        }
    }
}