如何通过``QDesktopServices.openUrl``更改用于打开文件的应用程序
How to change application that is used to open a file by ``QDesktopServices.openUrl``
我正在尝试调试在 Calibre 中打开 CBR 文件的问题(它是 explained here)。具体的Callibre问题大多无关紧要,归结为文件和文件夹被不当的外部程序打开的问题。
经过一些调试后,我发现罪魁祸首很可能是对 QDesktopServices.openUrl(qurl)
的调用选择了错误的应用程序来处理特定文件。
Qt documentation 对于此方法的工作原理有些简洁(我真的很关心 Python 版本,但我想行为是相同的):
If the URL is a reference to a local file (i.e., the URL scheme is "file") then it will be opened with a suitable application instead of a Web browser.
我的 linux 环境似乎配置正确,如果我在 Nautilus 中双击此文件(我并没有准备好完整的 KDE 环境)它会在正确的程序中打开。
所以问题是:
openUrl
如何找到合适的应用程序来打开文件。
- 如何更改处理该文件的应用程序。
经过一些额外的研究后发现 QDesktopServices.openUrl
在后台使用 XDG 实用程序。结果与 xdg-open
一致。
我正在尝试调试在 Calibre 中打开 CBR 文件的问题(它是 explained here)。具体的Callibre问题大多无关紧要,归结为文件和文件夹被不当的外部程序打开的问题。
经过一些调试后,我发现罪魁祸首很可能是对 QDesktopServices.openUrl(qurl)
的调用选择了错误的应用程序来处理特定文件。
Qt documentation 对于此方法的工作原理有些简洁(我真的很关心 Python 版本,但我想行为是相同的):
If the URL is a reference to a local file (i.e., the URL scheme is "file") then it will be opened with a suitable application instead of a Web browser.
我的 linux 环境似乎配置正确,如果我在 Nautilus 中双击此文件(我并没有准备好完整的 KDE 环境)它会在正确的程序中打开。
所以问题是:
openUrl
如何找到合适的应用程序来打开文件。- 如何更改处理该文件的应用程序。
经过一些额外的研究后发现 QDesktopServices.openUrl
在后台使用 XDG 实用程序。结果与 xdg-open
一致。