如何使用qressource
命令打开资源文件(QDesktopServices::openUrl
)?
我尝试了几种方法,但似乎都没有(例如QDesktopServices::openUrl(QUrl(tr(":ressource.pdf")));
)
谢谢。
答案 0 :(得分:3)
不幸的是,你不能直接这样做,先将它保存到文件中。
我检查了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 :(得分:1)
如果资源文件正确添加到qmake项目文件中,则不需要打开它们:
RESOURCES += resources.qrc
然后,您应该能够通过上面使用的语法使用资源文件中包含的文件:
:/path/filename
(资源文件中的路径和文件名)
供参考: QDesktopServices :: openUrl用于打开具有特定网页的标准浏览器。 并且,您不应仅对显示给用户的文本(应该为多语言应用程序翻译)使用路径名等上的tr(“”)