将命令行参数传递给qml

时间:2019-05-27 09:14:36

标签: linux qt shell qml command-line-arguments

我想从linux shell调用qml-script并传递文本作为参数,例如

./message.qml "hello this is a message"

/usr/bin/qt5/qml ./message.qml "hello this is a message"

qml脚本应显示该文本。

以下示例qml脚本有效,但是显示的文本(“ hello”)当然是静态的。可以在qml中查询命令行参数吗?

#!/usr/bin/qt5/qml

import QtQuick 2.2


Rectangle {
    width: 1024
    height: 600
    Text {
        anchors.centerIn: parent
        text: "Hello" // here I want to have a text which is set in the call
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit()
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您可以使用Qt.application.arguments访问命令行参数,例如,在我的情况下,如果我执行以下命令:

/usr/bin/qml message.qml "hello this is a message"
#!/usr/bin/qt5/qml

import QtQuick 2.2


Rectangle {
    width: 1024
    height: 600
    Text {
        anchors.centerIn: parent
        text: Qt.application.arguments[2] // here I want to have a text which is set in the call
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit()
        }
    }
}

Qt.application.arguments[index]中的索引可能会有所不同,具体取决于您如何调用qml的执行。