Solved QWebEngine open links issue
-
Hi! I have noticed that
QWebEngine
doesn't open some links. For example, when I navigate to https://www.qt.io/, and press on these links, it do nothing.But when I open context menu, it displays the default menus, and there is option to follow link, when I clicked on it, the page has been opened successfully.
Code:
QWebEngineView *browserTest = new QWebEngineView(this); browserTest ->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, true); browserTest ->settings()->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true); browserTest ->settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
So how to open these links by mouse clicks? Why it is not the default behavior to open links in the
QWebEngine
? Thanks. -
@Cobra91151 My guess is that you're missing OpenSSL
-
Hi! What do you mean by missing
OpenSSL
? -
@Cobra91151 You're trying to access HTTPS URLs which are encrypted.
-
If
OpenSSL
is missing when why theFollow link
in the context menu works? How to get the access to the source code of theQWebEngine
context menu? -
-
Ok. Thanks. I think the problem is with tabs. These links will open in the new tabs, but I need to open it in the same tab.
-
I have found that the issue is with links that have
target="_blank"
properties. So, I should reimplementQWebEnginePage
createWindow
method to open such links in the same window. -
@Cobra91151
target="_blank"
links means open in new window/tab, so why would you want to (re-)implement to open in same window? If anything you need to change the link? -
I know what
target="_blank"
means, I illustrated it for testing purposes. The problem is withQWebEngine
doesn't work with it well, and do nothing when clicking on such link. How can I change such links for every website on the web? -
I have fixed it by reimplementing
QWebEnginePage
.appwebenginepage.cpp
QWebEnginePage *AppWebEnginePage::createWindow(QWebEnginePage::WebWindowType) { return this; }
And added the page to the
QWebEngineView
.browserTest = new QWebEngineView(browserTab); AppWebEnginePage *webPage = new AppWebEnginePage(); browserTest->setPage(webPage);
Now it opens all links in the
QWebEngineView
window. -
Cobra91151 I'm also facing the same problem in Python and PyQt5. How to solve this problem in Python?