К сожалению, вы не можете сделать это напрямую, сначала сохраните его в файл.
Я проверяю источник 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())));
}