2013-09-27 179 views
9

Tôi có một ứng dụng dựa trên Qt hoạt động cho cả Mac và Windows. Khi người dùng cài đặt phần mềm, nó cũng cài đặt một thư mục có chứa một loạt các trang tài liệu HTML. Làm thế nào tôi có thể tìm thấy vị trí cài đặt của chương trình để khi người dùng cố gắng mở Trợ giúp từ bên trong ứng dụng, chúng được đưa đến index.html.Cách tìm thư mục cài đặt của ứng dụng Qt?

Chương trình của tôi cài đặt ở các vị trí bình thường cho Windows và Mac. Trên máy Mac, chương trình của tôi cài đặt thành /Users/username/Applications/MyProgram trong đó MyProgram là một thư mục chứa "MyProgram.app" và thư mục "Tài liệu".

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

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

Vì vậy, câu hỏi cuối cùng của tôi là, cần executablePath là gì? Hơn nữa, điều này giả định người dùng có thể cài đặt chương trình ở nơi khác ngoài vị trí mặc định hoặc chương trình có thể được khởi chạy từ một phím tắt.

+0

thể trùng lặp của [như thế nào để có được tên thực thi trong Qt] (http://stackoverflow.com/questions/4515602/how-to-get-executable-name-in -qt) – syam

+0

Không phải là QCoreApplication :: applicationDirPath (http://qt-project.org/doc/qt-5.0/qtcore/qcoreapplication.html#applicationDirPath) thực hiện chính xác những gì bạn muốn? – Zlatomir

Trả lời

18

Bạn nên sử dụng:

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

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