В приложении, которое я разрабатываю (используя C++ и Qt), я использую QApplication :: applicationDirPath() для доступа к некоторым ресурсам в отношении пути приложения.Могу ли я использовать applicationDirPath() для доступа к ресурсам на более высоком уровне каталогов?
В качестве примера, так как я хочу, чтобы открыть HTML руководство из приложения, я поступаю так:
void MainWindow::on_actionHelp_triggered()
{
QString link = QApplication::applicationDirPath() + "/Guide/guide.html";
bool r = QDesktopServices::openUrl(QUrl::fromLocalFile(link));
}
Этот фрагмент кода работает, если структура проекта представляет путь «ProjectName/bin/Release/Руководство /guide.html "(так как файл .exe находится в« ProjectName/bin/Release/AppName.exe »).
Но что я могу сделать, чтобы обратиться к ресурсу с более высоким каталогом? В качестве примера, я хочу, чтобы мой файл HTML находился в «ProjectName/data/Guide/guide.html». Но таким образом, кажется невозможным составить путь в том, как я действую.
EDIT: После того, как @ комментарий Олив, я хотел бы уточнить вещь: «Почему я не использую„../“?» Потому что он не будет работать с Visual Studio, где я массово запустить приложение для его проверки. На самом деле, я бы использовал «../data/Guide/guide.html», когда «со стороны» мне пришлось бы делать «../../data/Guide/guide.html», ,
Вот почему (я думаю) QApplication :: applicationDirPath() существует. Тем не менее, я не эксперт, поэтому не обвиняйте меня и не исправляйте мою возможную ошибку, пожалуйста!
Можете ли вы попробовать с ".. \ .. \ data/Guide/guide.html"? – Ashif
Спасибо за ваше предложение, оливковое, но это не то, что я ищу, * если возможно *. Я редактировал свой вопрос. –