首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查是否安装了PDF QDesktopServices::openUrl()

检查是否安装了PDF QDesktopServices::openUrl()
EN

Stack Overflow用户
提问于 2015-01-28 10:39:29
回答 1查看 460关注 0票数 1

我想检查一下,是否安装了pdf阅读器。这个想法是使用QDesktopServices::openUrl("path/test.pdf"),如果它返回“假”,我知道没有安装pdf阅读器。问题是,如果安装了pdf阅读器,它就会打开pdf。我能“禁用”那个吗?

/edit:我的解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.pdf\\OpenWithProgids", QSettings::NativeFormat);
 if (settings.allKeys().size() == 0) {...}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 11:03:35

我能“禁用”那个吗?

简单的回答-不。

当QDesktopServices::openUrl要求系统使用相关程序打开文件时,您不能通过Qt禁用它。

虽然不推荐,但您可以在每个平台的基础上禁用它,但是如果您要沿着这条路线前进,我建议使用每个平台的特性来检查是否有一个与pdf数据文件相关的应用程序。

在Windows上,它存储在注册表中,而OS使用LaunchServices

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

如果您想要能够显示一个pdf,您可能会更好地处理直接在您的程序。您可以阅读有关该这里的一些选项。

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

https://stackoverflow.com/questions/28190125

复制
相关文章

相似问题

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