QDesktopServices :: openUrl()不会在Windows上的chrome中打开页面。解决方法?

时间:2013-04-19 11:29:37

标签: 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

所以它确实有效,但是,等等,ff等打开带有指定网址的新标签,而铬不是

我认为这是错误

前段时间它完美运作

我的系统(ENV vars等)可能有问题吗?

请帮助解决方法

我更喜欢跨平台,但在Windows上正确的工作具有最高优先级

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

PS:抱歉英语不好。

1 个答案:

答案 0 :(得分:1)

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