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

QDesktopServices::openUrl() doesn't open page in chrome on windows. Workaround?

本文关键字:解决 方法 上的 openUrl QDesktopServices Windows chrome      更新时间:2023-10-16
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不

我想是bug

前段时间它工作得很好

可能是我的系统(ENV变量等)有问题吗?

请帮助解决

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

可能的解决方案(winapi SHELLEXECUTE) -真的很讨厌用难看的#ifdef,但可以是一个选项

PS:对不起,我的英文很差。

我认为这不是你的应用程序的问题。我认为这更多的是关于Chrome如何处理这样的调用。站在你的立场,我会选择winpai SHELLEXECUTE解决方案。与将默认浏览器调用移到操作系统而不是Qt库的好处相比,#ifdef并不是真的丑陋。