首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有资源的QDesktopServices::openUrl

带有资源的QDesktopServices::openUrl
EN

Stack Overflow用户
提问于 2009-10-24 19:31:32
回答 2查看 2.2K关注 0票数 1

如何使用QDesktopServices::openUrl命令打开资源源文件(qressource)?

我尝试了几种方法,但似乎都不起作用(例如QDesktopServices::openUrl(QUrl(tr(":ressource.pdf")));)

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-24 20:08:25

不幸的是,你不能直接这样做,先把它保存到一个文件中。

我查了一下Qt的源代码。这是因为url被直接传递到浏览器或其他应用程序(取决于协议)。这些应用程序将看不到您的资源,因为它们处于不同的进程中。

以下是相关的来源:

qdesktopservices.cpp:

代码语言:javascript
复制
bool QDesktopServices::openUrl(const QUrl &url)
{
   ...
}

qdesktopservices_x11.cpp:

代码语言:javascript
复制
static bool openDocument(const QUrl &url)
{
    ...
}
代码语言:javascript
复制
static bool launchWebBrowser(const QUrl &url)
{
   ...
}
代码语言:javascript
复制
inline static bool launch(const QUrl &url, const QString &client)
{  
    return (QProcess::startDetached(client + QLatin1Char(' ') + QString::fromLatin1(url.toEncoded().constData())));  
}
票数 5
EN

Stack Overflow用户

发布于 2009-10-24 20:03:09

如果资源文件被正确地添加到qmake项目文件中,您应该不需要打开它们:

代码语言:javascript
复制
RESOURCES += resources.qrc

然后,您应该能够通过上面使用的语法使用资源文件中包含的文件:

代码语言:javascript
复制
:/path/filename

(资源文件内的路径和文件名)

仅供参考: QDesktopServices::openUrl用于打开带有特定网页的标准浏览器。而且,您不应该只在显示给用户的文本上使用tr("")来处理路径名等(对于多语言应用程序应该进行翻译)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1617746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档