2013-09-27 6 views
9

Ich habe eine Qt-basierte Anwendung, die für Mac und Windows funktioniert. Wenn der Benutzer die Software installiert, installiert er auch einen Ordner mit einer Reihe von HTML-Dokumentationsseiten. Wie kann ich den Speicherort der Programminstallation finden, so dass, wenn der Benutzer versucht, Hilfe aus der Anwendung zu öffnen, sie zu index.html gebracht werden.Wie finde ich das Installationsverzeichnis einer Qt-Anwendung?

Mein Programm wird an den normalen Orten für Windows und Mac installiert. Auf dem Mac wird mein Programm auf /Users/username/Applications/MyProgram installiert, wobei MyProgram ein Ordner ist, der "MyProgram.app" und den Ordner "Doc" enthält.

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

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

Also, meine letzte Frage ist, was soll executablePath sein? Ferner wird davon ausgegangen, dass der Benutzer das Programm an einer anderen Stelle als dem Standardspeicherort installieren kann oder dass das Programm über eine Verknüpfung gestartet werden kann.

+0

möglich Duplikat [wie Namen der ausführbaren Datei in Qt bekommen] (http://stackoverflow.com/questions/4515602/how-to-get-executable-name-in -qt) – syam

+0

Ist QCoreApplication :: applicationDirPath (http://qt-project.org/doc/qt-5.0/qtcore/qcoreapplication.html#applicationDirPath) nicht genau das, was Sie wollen? – Zlatomir

Antwort

18

sollten Sie verwenden:

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

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

Verwandte Themen