【发布时间】:2016-08-15 11:50:14
【问题描述】:
有Qt接口获取系统默认浏览器吗?
我想在浏览器中显式打开一个file:// url 而不是系统的默认应用程序,所以QDesktopServices::openUrl 不是因为
如果 URL 是对本地文件的引用(即 URL 方案是“文件”),那么它将使用合适的应用程序而不是 Web 浏览器打开。
【问题讨论】:
-
您不应该真正超越系统设置。你为什么要强迫你的手在那里?你在说什么类型的文件?
-
一个许可文件 (.html),不应在任何类型的 IDE 或文本编辑器中打开,而应进行渲染。
-
好吧,如果用户决定设置一个 IDE 来打开
html文件,那么这是她的问题,我会说... HTML 内容是否在您的控制之下?您可以使其“足够简单”以由 QTextBrowser 呈现。 (或者全力以赴,将 WebKit/Chromium 与您的应用一起发布)。 -
是的,我生成并发送了 .html。如有必要,我也可以将其更改为 PDF。关键是,用户永远不会得到文件。因此,这不是“用户使用首选应用程序打开文件”操作,而是“显示许可证”操作。因此,文件格式是与用户无关的实现细节。 QTextBrowser 是一个选项,是的。其他文件格式也是如此。本地 HTTP 服务器也是。但这并不能回答问题。我不敢相信在浏览器中打开东西这么难。
-
因为这几乎不是要求。如果您愿意,只需处理一小部分特定于平台的代码。在FDG-complaint桌面下,可以调用
x-www-browser;我不知道 Windows 或 macOS。
标签: qt qt5 qdesktopservices