如何在qt quick 2中正确打开对话框?

时间:2018-03-28 14:19:58

标签: qt dialog qml signals qtquick2

我有一个自定义对话框,如下所示:

CustomDialog.qml

 Dialog{    
    Component.onCompleted: {
        console.log("******* Loading Some Data from WebServcie ******")
    }
 }

现在我在 main.qml 文件中使用此自定义对话框:

 ApplicationWindow {
     id: mainWindow

        Button{
            id:btn
            onClicked: {
                cd.open();
            }
        }

    CustomDialog{
        id:cd
    }
}

当我运行应用程序时,Component.onCompleted将会执行,但我希望在单击Button之后执行此事件,并且在对话框将打开后。我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在屏幕上显示Dialog时执行某些操作。

您可以通过检查visible属性是否已更改来执行此操作:

<强> CustomDialog.qml

Dialog {
  onVisibleChanged: { 
    if (visible) {
       console.log("I'm visible now !")
    } 
  }
}

请注意,在实例化组件时会触发Component.onCompleted,而不是在向用户显示组件时触发。{/ p>