gpt4 book ai didi

c++ - 检查是否安装了 PDF 阅读器 - QDesktopServices::openUrl()

转载 作者:行者123 更新时间:2023-11-30 05:48:25 26 4
gpt4 key购买 nike

我想检查是否安装了 pdf 阅读器。我的想法是使用 QDesktopServices::openUrl("path/test.pdf") 如果它返回“false”,我知道没有安装 pdf 阅读器。问题是,如果安装了 pdf 阅读器,它会打开 pdf。我可以“禁用”它吗?

/编辑:我的解决方案:

QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.pdf\\OpenWithProgids", QSettings::NativeFormat);
if (settings.allKeys().size() == 0) {...}

最佳答案

Can I "disable" that?

简单的回答 - 不。

由于 QDesktopServices::openUrl 要求系统使用相关程序打开文件,因此您无法通过 Qt 禁用它。

虽然不推荐,但您可以在每个平台的基础上禁用它,但如果您沿着这条路走下去,我建议使用每个平台自己的功能来检查是否有与 pdf 数据文件关联的应用程序。

在 Windows 上,它存储在 registry 中,而 OS X 使用 LaunchServices .

但是,仅仅因为文件关联不存在,并不意味着没有安装合适的应用程序来打开 pdf。

如果您希望能够显示 pdf,最好直接在您的程序中处理它。您可以阅读有关该 here 的一些选项.

关于c++ - 检查是否安装了 PDF 阅读器 - QDesktopServices::openUrl(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com