Qt 将参数传递给MessageDialog,以便根据用户与dialog的交互进一步处理该参数
有以下QML消息对话框: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
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()
}
}