El siguiente fragmento proviene de una pequeña aplicación que escribí utilizando el marco Qt. La idea es que la aplicación se pueda ejecutar en modo por lotes (es decir, invocada por un script) o se pueda ejecutar de forma interactiva.Obtención de argumentos de línea de comando en una aplicación Qt
Es importante, por tanto, que soy capaz de analizar los argumentos de línea de comandos con el fin de conocer el modo en el que el que se ejecute etc.
[Editar]
estoy depuración utilizando Qt Creator 1.3 .1 en Ubuntu Karmic. Los argumentos se pasan de la manera normal (es decir, agregándolos a través de la configuración 'Proyecto' en el IDE de Qt Creator).
Cuando ejecuto la aplicación, parece que los argumentos no se pasan a la aplicación. El código a continuación, es un fragmento de mi función main().
int main(int argc, char *argv[])
{
//Q_INIT_RESOURCE(application);
try {
QApplication the_app(argc, argv);
//trying to get the arguments into a list
QStringList cmdline_args = QCoreApplication::arguments();
// Code continues ...
}
catch (const MyCustomException &e) { return 1; }
return 0;
}
[Actualización]
He identificado el problema - por alguna razón, aunque argc es correcta, los elementos de argv son cadenas vacías.
Puse este pequeño fragmento de código para imprimir los elementos de argv, y me horroricé al ver que estaban todos vacíos.
for (int i=0; i< argc; i++){
std::string s(argv[i]); //required so I can see the damn variable in the debugger
std::cout << s << std::endl;
}
¿Alguien sabe cómo puedo recuperar los argumentos de línea de comando en mi aplicación?
Tiene un refuerzo adicional en su intento/captura allí. No nos da el código para utility :: option_values ...¿No podrías simplificar este ejemplo para decir si cmdline_args.isEmpty() imprime "oh no!"? Si lo haces, ¿sigues teniendo el problema? – HostileFork
Por cierto, ¿qué es utility :: options_values? No veo nada como eso en la documentación de Qt también. Además, incluso si no pasa argumentos, el primer argumento siempre será el nombre del programa. Entonces, creo que el problema podría estar en la utilidad :: option_values. También ha intentado comprobar argv [0], argv [1] etc ... intente con ese también ... – liaK