QDesktopServices :: openUrl с Ressource - PullRequest
       26

QDesktopServices :: openUrl с Ressource

0 голосов
/ 24 октября 2009

Как открыть файл ресурса (qressource) с помощью команды QDesktopServices::openUrl?

Я пробовал несколько способов, но ни один из них не работал (например, QDesktopServices::openUrl(QUrl(tr(":ressource.pdf")));)

Спасибо.

Ответы [ 2 ]

3 голосов
/ 24 октября 2009

К сожалению, вы не можете сделать это напрямую, сначала сохраните его в файл.

Я проверяю источник Qt. Это потому, что URL-адрес передается в браузер или другое приложение (в зависимости от протокола) напрямую. Эти приложения не увидят ваш ресурс, потому что они находятся в другом процессе.

Вот соответствующий источник:

qdesktopservices.cpp:


bool QDesktopServices::openUrl(const QUrl &url)
{
   ...
}

qdesktopservices_x11.cpp:


static bool openDocument(const QUrl &url)
{
    ...
}

static bool launchWebBrowser(const QUrl &url)
{
   ...
}

inline static bool launch(const QUrl &url, const QString &client)
{  
    return (QProcess::startDetached(client + QLatin1Char(' ') + QString::fromLatin1(url.toEncoded().constData())));  
}
1 голос
/ 24 октября 2009

Вам не нужно открывать файлы ресурсов, если они правильно добавлены в файл проекта qmake:

RESOURCES += resources.qrc

Тогда вы сможете использовать файлы, включенные в файл ресурсов, используя синтаксис, который вы использовали выше:

:/path/filename

(Путь и имя файла внутри файла ресурса)

FYI: QDesktopServices :: openUrl используется для открытия стандартного браузера с определенной веб-страницей. И не следует использовать tr ("") в именах путей и т. Д. Только в тексте, отображаемом для пользователя (который должен быть переведен для многоязычных приложений)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...