如何使用QDesktopServices::openUrl命令打开资源源文件(qressource)?
我尝试了几种方法,但似乎都不起作用(例如QDesktopServices::openUrl(QUrl(tr(":ressource.pdf")));)
谢谢。
发布于 2009-10-24 20:08:25
不幸的是,你不能直接这样做,先把它保存到一个文件中。
我查了一下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())));
}发布于 2009-10-24 20:03:09
如果资源文件被正确地添加到qmake项目文件中,您应该不需要打开它们:
RESOURCES += resources.qrc然后,您应该能够通过上面使用的语法使用资源文件中包含的文件:
:/path/filename(资源文件内的路径和文件名)
仅供参考: QDesktopServices::openUrl用于打开带有特定网页的标准浏览器。而且,您不应该只在显示给用户的文本上使用tr("")来处理路径名等(对于多语言应用程序应该进行翻译)
https://stackoverflow.com/questions/1617746
复制相似问题