link sugere que há uma propriedade Qt.application.arguments em Qt 5.1. Eu não sei se isso faz o que é necessário, no entanto.
Estou tentando escrever um aplicativo QML para ser lançado pelo qmlscene. Eu quero que isso aceite argumentos, então estou usando o Argumentos objeto. No entanto, isso recebe os argumentos passados para qmlscene, bem como aqueles que eu pretendo passar para o meu programa. Mais problemático, se um dos argumentos for um arquivo, o qmlscene tenta processá-lo, falhar ou ser interrompido. Existe uma boa maneira de contornar este problema?
A primeira coisa que tentei foi passar os argumentos como um argumento nomeado específico que qmlscene ignoraria. A linha de lançamento parece com qmlscene -I <directory> <qml file> --appargs="$*"
. ( $*
é uma base para todos os argumentos como uma única string.) Para um único argumento, isso funciona muito bem. Mas se eu quisesse passar mais de um argumento, eu teria que analisá-los eu mesmo, o que meio que anula o propósito de ter um analisador de argumentos.
Analisando alguns arquivos .desktop
da amostra, notei que eles colocam os argumentos antes do arquivo qml, então eu tentei uma linha de comando como qmlscene "$@" -I <directory> <qml file>
. Isso impede qmlscene de tentar interpretar esses argumentos. Mas se eu não passar nenhum argumento, o objeto Arguments irá alegremente processar os argumentos destinados a qmlscene. Então eu ainda tenho que fazer algum processamento aqui. Não posso deixar de suspeitar que sinto falta de um jeito melhor. O que é isso?