c++ - QDesktopServices::openUrl() 无法在 Windows 上的 chrome 中打开页面。解决方法?

标签 c++ windows qt google-chrome

QDesktopServices::openUrl(QUrl("http://google.com"));

在默认浏览器 ie9、ie8、firefox 或 opera 下工作

如果默认浏览器是 chrome 什么都不会发生

QtCreator 调试器日志我可以看到像这样的行

ModLoad: 00000000`05250000 00000000`05308000   iexplore.exe

ModLoad: 00000000`04db0000 00000000`04ef8000   chrome.exe

所以它确实有效,但 ie,ff 等。打开具有指定 url 的新选项卡,而 chrome 不会

我想这是错误

前段时间它运行良好

会不会是我的系统有问题(环境变量等)?

请帮助解决问题

我更喜欢跨平台,但在 windows 上的适当工作具有最高优先级

可能的解决方案 (winapi SHELLEXECUTE) - 真的很讨厌丑陋的#ifdef,但可以作为一个选择

PS:抱歉英语不好。

最佳答案

我不认为这真的是您的应用程序的问题。我认为更多的是关于 Chrome 如何处理此类调用。在您的位置上,我会选择 winpai SHELLEXECUTE 解决方案。与将默认浏览器调用移动到操作系统而不是 Qt 库的好处相比,#ifdef 并不是真的难看。

关于c++ - QDesktopServices::openUrl() 无法在 Windows 上的 chrome 中打开页面。解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16103589/

相关文章:

c++ - 如何在 Microsoft SAPI 中使用 SetNotifyCallbackFunction()?

c++ - 用于获取操作系统语言(本地化信息)的 Win32 API?

c++ - 堆栈及其实现

windows - 在 Eclipse(或一般的 Windows GUI 宏工具)中是否有加速重复提交的热键?

c++ - Qt库——静态成员函数的线程安全

qt - 如何在QTableView中刷新QCombobox的内容

c++ - C WinAPI 和 C++ MFC 资源

java - 如何使用 JAVA 设置文件的通用属性,如标题、主题、评论、公司等

windows - 设备驱动程序 IRQL 和线程/上下文切换

c++ - 具有多个 QWidget 的 QScrollArea 仅显示空框