Qt 将参数传递给MessageDialog,以便根据用户与dialog的交互进一步处理该参数

Qt 将参数传递给MessageDialog,以便根据用户与dialog的交互进一步处理该参数,qt,qml,Qt,Qml,有以下QML消息对话框: MessageDialog { id: questionDialog icon: StandardIcon.Question standardButtons: StandardButton.Yes | StandardButton.No title: qsTr("Question") + editorScene.emptyString text: qs

有以下QML消息对话框:

MessageDialog {
            id: questionDialog
            icon: StandardIcon.Question
            standardButtons: StandardButton.Yes | StandardButton.No
            title: qsTr("Question") + editorScene.emptyString
            text: qsTr("Do stuff?") + editorScene.emptyString
            onYes: {
                console.log("I want to be able to process parameter here")
            }
            onNo: {
                console.log("Do nothing")
            }
}
onParameterChanged
插槽中,我打开对话框,同时处理
parameterChanged
信号。该信号通过一个
参数

onParameterChanged: {

 if (parameter) { // "parameter" is passed by parameterChanged signal
     questionDialog.open() // How can I pass "parameter" to dialog when opening it?
 }

}
现在我想知道,如果用户选择了
Yes
按钮,如何将
参数
onParameterChanged
槽传递到问题对话框,以便能够处理
参数

问题通过使用解决

我为
MessageDialog
定义了一个新的
property
属性:

MessageDialog {
    id: questionDialog

    property string parameterName: ""

    onYes: {
        console.log("Parameter to be processed:", parameterName)
    }
}
然后在打开对话框之前设置属性:

onParameterChanged: {

    if (parameter) { // "parameter" is passed by parameterChanged signal
        questionDialog.parameterName = parameter // Set property attribute
        questionDialog.open()
    }

}