qt - 在某个浏览器选项卡/窗口中打开一个 URL

标签 qt url browser qt4 openurl

在我的 Qt 应用程序中,我想在同一个浏览器选项卡/窗口中重复打开 URL。 (以编程方式“刷新”此选项卡)

使用

QDesktopServices::openUrl(QUrl("http://www.domain.tld"));

为每次通话打开一个新选项卡/窗口。是否有可能在某处添加“target=”参数?

最佳答案

你所要求的不可能按照你想象的方式去做。 openUrl()使用操作系统指定程序以打开其文档中提到的参数。

可能有一些变通方法,但它们都不能很好地工作,或适用于所有浏览器。只是这种细粒度的控制对你来说很可能是不可能的。

如果您想控制浏览器中的选项卡,您可以找到该选项卡代表的窗口,然后在打开新窗口之前将其关闭。这个解决方案有点hacky。

另一个hacky 解决方案是找到包含URL 的编辑框的HWND,并尝试使用SendMessage() 更改其文本。 .但是,这不适用于 Chrome,因为它不会为 URL 窗口使用单独的控件。它可能适用于 Firefox 或 IE。

更好的解决方案是使用 Qt WebKit 制作您自己的 Web 浏览器。在其中渲染页面并更改查看的 url 非常容易。 QWebViewQtWebKit 的一个易于使用的实现.

关于qt - 在某个浏览器选项卡/窗口中打开一个 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197731/

相关文章:

qt - 如何访问通过 Loader 加载的 qml 页面的公共(public)属性?

c# - 将 C++ 函数转换为 C#

javascript - 每次强制在新的弹出窗口中打开不同的链接

javascript - 浏览器中的 JavaScript 应用程序可以使用多少内存?

c++ - 在每次构建时强制 rcc-ing qrc 文件

用于游戏开发的 Qt 和 OpenGL

javascript - 从另一个页面更改 iframe 的 'src'

jQuery 从 url 哈希中查找属性

时间:: when can I know that webbrowser controller Url changed to a specific url?

C# WebSocketServer wss ://connection fail