如何判断是否可以返回/转发QWebEngineView

时间:2017-02-08 00:28:50

标签: python-3.x pyqt5

如何判断是否可以返回/转发QWebEngineView?

我需要判断qwebengine是否有信号可以返回或继续前进。

我使用plasma 5.9和python 3.6.0运行Arch Linux。

1 个答案:

答案 0 :(得分:1)

QWebEnginePage.WebActions可用于此目的。以下示例将加载谷歌,然后5秒后加载bing。再过5秒后,它将检查导航操作。这通常会在您的视图的setPage()中完成。以下代码仅用于演示API。

import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
app = QtWidgets.QApplication(sys.argv)
w = QWebEngineView()
w.load(QtCore.QUrl('http://google.com'))

def _test_navigaion():
    w.load(QtCore.QUrl('http://bing.com'))
    QtCore.QTimer.singleShot(5000, _test_navigaion2)

def _test_navigaion2():
    print('back enabled', w.page().action(QWebEnginePage.Back).isEnabled())
    print('forward enabled', w.page().action(QWebEnginePage.Forward).isEnabled())
QtCore.QTimer.singleShot(5000, _test_navigaion)

w.show()
app.exec_()