Unsolved Parámetros diferentes para linux y windows.
-
Buenas tarde.
No se si el título es muy descriptivo pero no se me ocurre otro. El caso es que tengo una funcion que llama a VLC y le paso el parámetro de la direccion del video que quiero reproducir. En linux no tengo ningun problema pero en windows antepone la ruta del ejecutable Qt a la del archivo. Es la primera vez que trabajo en windows y no logro que funcione.void Consulta::on_lvIris_itemDoubleClicked(QListWidgetItem *item) { QString ojo = directorioTrabajo+"/"+paciente+"/"+"Iris/"+item->text(); QFileInfo info(ojo); if(info.completeSuffix() == "jpg" or info.completeSuffix() == "png"){ QString programa = appImagen; QStringList arg; arg << ojo.toLocal8Bit().constData(); QProcess *proc = new QProcess(this); proc->start(programa,arg); } if(info.completeSuffix() == "avi"){ QString programa = appVideo; QStringList arg; arg << ojo.toLocal8Bit().constData(); qDebug() << programa; qDebug() << arg; QProcess *proc = new QProcess(this); proc->start(programa,arg); } }
qDebug() me devuelve lo mismo en ambos casos como es lógico.
Ambos abren VLC (appVideo) pero en windows VLC intenta abrir un archivo en la ruta_compilacion+ruta_del_video.
en Linux
En windows.Alguien sabe por que?.
Gracias
-
Hola
No sé por que ocurrirá, puedes usar QDir que tiene métodos para obtener diferentes rutas del sistema y relativas a tu ejecutable.
Si la ruta que obtienes es diferente de linux a windows también puedes combinar con el uso del preprocesador y obtener la ruta adecuada en ambos sistemas:
#ifdef Q_OS_WIN ... #else ... #endif
En https://doc.qt.io/qt-6/qtglobal.html puedes ver las opciones que puedes usar.
Un saludo
-
@juanki
Gracias por responder.
Ahora mismo no tengo tiempo para investigar como arreglarlo, tengo que seguir avanzando, y de momento lo he solucionado dejando que cada tipo de archivo sea abier por la aplicación predeterminada del sistema mediante:QDesktopServices::openUrl(QUrl::fromLocalFile(archivo));
y así me abre cualquier tipo de fichero que esté registrado en el sistema con la aplicacion por defecto.
En un futuro me gustaría cambiarlo y si doy con la solución lo comentaré.Gracias otra vez.