在QML中使用对话框

时间:2014-05-26 16:42:40

标签: javascript qt qml qt5 qtquickcontrols

如果在某个时刻我需要通过调用对话框窗口或类似的东西来获取用户输入。使用QML实现此目的的最佳方法是什么? js中prompt的任何类似物?

1 个答案:

答案 0 :(得分:1)

您可以使用自{Qt 5.2 以来的Dialog,并根据需要自定义它。 确保您已安装此版本并正常运行。

Here你可以找到例子。

另外,请看一下我准备的小例子:

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Dialogs 1.2

ApplicationWindow {
    visible: true
    width: 320
    height: 240
    title: qsTr("Custom Dialog")

    Dialog {
        id: customDialog
        title: "Custom Dialog in QML/Qt 5.3"
        standardButtons: StandardButton.Ok | StandardButton.Cancel

        Column {
            anchors.fill: parent
            Text {
                text: "Here goes all your custom elements..."
            }
            TextInput {
                id: edtInput
                text: "Input text"
            }
        }

        onButtonClicked: {
            if (clickedButton==StandardButton.Ok) {
                console.log("Accepted " + clickedButton)
                lblResults.text += edtInput.text
            } else {
                console.log("Rejected" + clickedButton)
            }
        }
    }
    Column {
        anchors.fill: parent

        Button {
            text: qsTr("Call Custom dialog")
            onClicked: customDialog.open()
        }

        Text {
            id: lblResults
            text: qsTr("Results: ")
        }
    }
}