2

我正在尝试调试在 Calibre 中打开 CBR 文件的问题(在此处进行了解释)。特定的 Callibre 问题大多无关紧要,归结为文件和文件夹被不正确的外部程序打开的问题。

经过一些调试后,我发现罪魁祸首很可能是QDesktopServices.openUrl(qurl)选择了错误的应用程序来处理特定文件的调用。

Qt 文档对于这种方法的工作原理有些简洁(我真的很关心 Python 版本,但我猜行为是相同的):

如果 URL 是对本地文件的引用(即 URL 方案是“文件”),那么它将使用合适的应用程序而不是 Web 浏览器打开。

我的 linux 环境似乎配置正确,如果我在 Nautilus 中双击此文件(我并没有准备好完整的 KDE 环境),它会在正确的程序中打开。

所以问题是:

  • 如何openUrl找到合适的应用程序来打开文件。
  • 如何更改将处理该文件的应用程序。
4

1 回答 1

-1

经过一些额外的研究,事实证明它在QDesktopServices.openUrl底层使用了 XDG 实用程序。结果与xdg-open.

于 2015-08-28T07:12:28.400 回答