2013-09-27 16 views
9

Ho un'applicazione basata su Qt che funziona sia per Mac che per Windows. Quando l'utente installa il software, installa anche una cartella contenente un mucchio di pagine di documentazione HTML. Come posso trovare la posizione dell'installazione del programma in modo che quando l'utente tenta di aprire la Guida dall'interno dell'applicazione, viene portato a index.html.Come trovare la directory di installazione di un'applicazione Qt?

Il mio programma viene installato nelle normali posizioni per Windows e Mac. Su Mac, il mio programma si installa su /Users/username/Applications/MyProgram dove MyProgram è una cartella contenente "MyProgram.app" e la cartella "Doc".

#ifdef Q_OS_MACX 
    docPath = executablePath + "/Doc/index.html"; 
#elif Q_OS_WIN 
    docPath = executablePath + "/Doc/index.html"; 
#endif 

    QDesktopServices::openUrl(QUrl::fromLocalFile(docPath)); 

Quindi, la mia ultima domanda è, che cosa dovrebbe essere executablePath essere? Inoltre, si presume che l'utente possa installare il programma altrove oltre alla posizione predefinita o che il programma possa essere avviato da una scorciatoia.

+0

possibile duplicato di [come ottenere nome del file eseguibile in Qt] (http://stackoverflow.com/questions/4515602/how-to-get-executable-name-in -qt) – syam

+0

Is not QCoreApplication :: applicationDirPath (http://qt-project.org/doc/qt-5.0/qtcore/qcoreapplication.html#applicationDirPath) fa esattamente ciò che vuoi? – Zlatomir

risposta

18

Si dovrebbe usare:

QString QCoreApplication::applicationDirPath() [static] 
+0

cf. http://doc.qt.io/qt-5/qcoreapplication.html#applicationDirPath – maxschlepzig

Problemi correlati