3
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 等打开具有指定 url 的新选项卡而 chrome 没有

我想这是错误

前段时间它工作得很好

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

请帮助解决方法

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

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

PS:抱歉英语不好。

4

1 回答 1

1

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

于 2013-04-19T17:16:03.463 回答