我使用QML在我的app +简单逻辑中构建GUI。 在某个步骤,我打开对话框,关闭它后,我想取回一个结果值。 这是示例代码:
Button {
id: myButton
onClicked: {
var component = Qt.createComponent("Dialog.qml");
if (component.status === Component.Ready) {
var dialog = component.createObject(parent);
dialog.show();
dialog.onClosing: {} // that not works
}
}
}
Dialog.qml:
import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 1.1
Window {
id: dialogWindow
width: 800
height: 600
flags: Qt.Dialog
Button {
id: closeButton
onClicked: {
dialogWindow.close();
}
}
}
但我不知道在关闭对话框后如何获得一些返回值。
答案 0 :(得分:3)
我的建议是不要打扰Window
并使用Qt Quick Dialogs。
如果要使用Window
,则必须在窗口中以某些“是/否”按钮的形式定义自己的返回值,例如。单击其中一个时,将yes
属性设置为true
/ false
。然后,在Button
:
Connections {
target: dialogWindow
onVisibleChanged: // some action depending on value of "yes" property
}
请注意,我使用的是onVisibleChanged
而不是onClosing
,因为后者仅在user closing the window上发出:
当用户试图关闭窗口时会发出此信号。
如果我们按照CloseEvent参数的文档进行操作,我们会看到它的详细解释:
窗口系统即将关闭窗口的通知(例如,用户点击标题栏关闭按钮)。