我想从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()
}
}
}
答案 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的执行。