如何在qml中截取对话框的红色“x”关闭按钮的信号?
Dialog
{
id : dialog1
visible : false
title : "dialog1"
onRejected:
{
console.log("Red button x clicked signal") // Not working
}
Button
{
id: exitButton
text : "Exit"
onClicked :
{
console.log("exit button clicked") // this works
robotCalibrationDialog.visible = false
}
}
我已经尝试了qml对话框的所有信号,但似乎都没有为x红色按钮工作。
最佳答案
在这里,我希望“X”按钮的行为与被拒绝时的行为完全相同。您可以根据需要调用不同的信号,但我个人认为该信号与被拒绝的信号相同。
signal yesButtonClicked()
signal noButtonClicked()
signal rejectedButtonClicked()
signal acceptedButtonClicked()
property bool xButton: true
Dialog{
id: dialogId
title: dialogTitle
onYes: {
xButton = false
yesButtonClicked()
}
onNo: {
xButton = false
noButtonClicked()
}
onRejected: {
xButton = false
rejectedButtonClicked()
}
onAccepted: {
xButton = false
acceptedButtonClicked()
}
onVisibilityChanged: {
if (!this.visible && xButton){
rejectedButtonClicked()
}
if (this.visible){
xButton = true
}
}