Передача аргумента командной строки в qml - PullRequest
1 голос
/ 27 мая 2019

Я хочу вызвать qml-скрипт из оболочки linux и передать текст в качестве параметра, например

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

или

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

Этот скрипт должен отображать этот текст.

Пример приведенного ниже сценария qml работает, но отображаемый текст («привет»), конечно, статичен.Можно ли запросить аргументы командной строки в 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 Ответ

3 голосов
/ 27 мая 2019

Вы можете получить доступ к аргументам командной строки, используя 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.

...