我有以下代码:
from PyQt5 import QtWebEngineWidgets, QtWidgets
class Q(QtWebEngineWidgets.QWebEnginePage):
pass
app = QtWidgets.QApplication([])
l = QtWebEngineWidgets.QWebEngineView()
print(type(l.page()))
l.setPage(Q(l))
print(type(l.page()))
p = Q()
l.setPage(p)
print(type(l.page()))
l.setPage(Q())
print(type(l.page()))
app.exec_()
这是输出:
<class 'PyQt5.QtWebEngineWidgets.QWebEnginePage'>
<class '__main__.Q'>
<class '__main__.Q'>
<class 'PyQt5.QtWebEngineWidgets.QWebEnginePage'>
首先,我创建 QWebEnginePage 派生的 Q 类的新实例,将视图设置为其父级并将其分配为视图的页面。它按预期工作。
接下来我做同样的事情,但没有给父母。相反,我创建了一个临时变量来保存一个新的 Q 并分配它。它仍然按预期工作。
最后,我直接分配了一个动态创建的无父 Q。由于某种原因,这不起作用,页面重置为默认类。
为什么会这样?